diff --git a/arrow/src/util/decimal.rs b/arrow/src/util/decimal.rs index 2abf4fbf65e..7649b6b417f 100644 --- a/arrow/src/util/decimal.rs +++ b/arrow/src/util/decimal.rs @@ -80,13 +80,12 @@ pub trait BasicDecimal: PartialOrd + Ord + PartialEq + Eq { let (sign, rest) = value_str.split_at(if integer >= BigInt::from(0) { 0 } else { 1 }); let bound = min(self.precision(), rest.len()) + sign.len(); + let value_str = &value_str[0..bound]; if self.scale() == 0 { - let value_str = &value_str[0..bound]; value_str.to_string() } else if rest.len() > self.scale() { // Decimal separator is in the middle of the string - let value_str = &value_str[0..bound]; let (whole, decimal) = value_str.split_at(value_str.len() - self.scale()); format!("{}.{}", whole, decimal) } else {