Skip to content

Commit 7ced9b0

Browse files
committed
Use java.math.BigDecimal for casting String to Decimal instead of using toDouble.
1 parent 2c4d550 commit 7ced9b0

File tree

1 file changed

+1
-1
lines changed
  • sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions

1 file changed

+1
-1
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ case class Cast(child: Expression, dataType: DataType) extends UnaryExpression w
323323
private[this] def castToDecimal(from: DataType, target: DecimalType): Any => Any = from match {
324324
case StringType =>
325325
buildCast[UTF8String](_, s => try {
326-
changePrecision(Decimal(s.toString.toDouble), target)
326+
changePrecision(Decimal(new java.math.BigDecimal(s.toString)), target)
327327
} catch {
328328
case _: NumberFormatException => null
329329
})

0 commit comments

Comments
 (0)