Skip to content

Commit 16ba95c

Browse files
committed
Merge request-branch github/dpbriggs/master [akubera#72]
2 parents 0d718f9 + 02ba26b commit 16ba95c

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/lib.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -591,16 +591,16 @@ impl BigDecimal {
591591
return self.clone();
592592
}
593593

594-
let mut number = bigint.to_i128().unwrap();
595-
if number < 0 {
594+
let mut number = bigint.clone();
595+
if number < BigInt::zero() {
596596
number = -number;
597597
}
598598
for _ in 0..(need_to_round_digits - 1) {
599599
number /= 10;
600600
}
601601
let digit = number % 10;
602602

603-
if digit <= 4 {
603+
if digit <= BigInt::from(4) {
604604
self.with_scale(round_digits)
605605
} else if bigint.is_negative() {
606606
self.with_scale(round_digits) - BigDecimal::new(BigInt::from(1), round_digits)
@@ -2590,6 +2590,7 @@ mod bigdecimal_tests {
25902590
("1.449999999", 1, "1.4"),
25912591
("-9999.444455556666", 10, "-9999.4444555567"),
25922592
("-12345678987654321.123456789", 8, "-12345678987654321.12345679"),
2593+
("0.33333333333333333333333333333333333333333333333333333333333333333333333333333333333333", 0, "0"),
25932594
];
25942595
for &(x, digits, y) in test_cases.iter() {
25952596
let a = BigDecimal::from_str(x).unwrap();

0 commit comments

Comments
 (0)