Skip to content

Commit 8c16ab8

Browse files
author
David Navas
committed
Merge pull request #160 from markhamstra/SPARK-13806
Fixed round(negativeValue, scale=0)
2 parents fe82049 + 85f8d8a commit 8c16ab8

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/mathExpressions.scala

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -800,7 +800,11 @@ case class Round(child: Expression, scale: Expression)
800800
if (Float.isNaN(${ce.value}) || Float.isInfinite(${ce.value})){
801801
${ev.value} = ${ce.value};
802802
} else {
803-
${ev.value} = Math.round(${ce.value});
803+
if (${ce.value} < 0) {
804+
${ev.value} = -1 * Math.round(-1 * ${ce.value});
805+
} else {
806+
${ev.value} = Math.round(${ce.value});
807+
}
804808
}"""
805809
} else {
806810
s"""
@@ -817,7 +821,11 @@ case class Round(child: Expression, scale: Expression)
817821
if (Double.isNaN(${ce.value}) || Double.isInfinite(${ce.value})){
818822
${ev.value} = ${ce.value};
819823
} else {
820-
${ev.value} = Math.round(${ce.value});
824+
if (${ce.value} < 0) {
825+
${ev.value} = -1 * Math.round(-1 * ${ce.value});
826+
} else {
827+
${ev.value} = Math.round(${ce.value});
828+
}
821829
}"""
822830
} else {
823831
s"""

0 commit comments

Comments
 (0)