fix: include '9' when checking for any more digits

This commit is contained in:
electria 2026-07-20 20:13:39 -07:00
commit 016e21ac5a
Signed by: electria
SSH key fingerprint: SHA256:8LlB3ucPbBHqozqkhsNbaV5oG3SlzzqUj8FZDL6IPQs

View file

@ -54,7 +54,7 @@ pub fn get_significant_digits(n: &Float) -> usize {
break; break;
} }
if !raw_string[i..raw_string.len()].contains(|c| matches!(c, '1'..'9')) { if !raw_string[i..raw_string.len()].contains(|c| matches!(c, '1'..='9')) {
significant_digits = i; significant_digits = i;
break; break;
} }
@ -69,7 +69,10 @@ fn test_get_significant_digits() {
assert_eq!(many_zeros.to_f64(), 117.48139); assert_eq!(many_zeros.to_f64(), 117.48139);
let many_nines = parse_and_calc("12.0096 + 15.9994 * 2"); let many_nines = parse_and_calc("12.0096 + 15.9994 * 2");
assert_eq!(many_nines.to_f64(), 44.0084); assert_eq!(many_nines.to_f64(), 44.0084);
let zero_nine_zero = parse_and_calc("2+12321(5+123)");
assert_eq!(zero_nine_zero.to_f64(), 1577090.0);
assert_eq!(get_significant_digits(&many_zeros), 8); assert_eq!(get_significant_digits(&many_zeros), 8);
assert_eq!(get_significant_digits(&many_nines), 6); assert_eq!(get_significant_digits(&many_nines), 6);
assert_eq!(get_significant_digits(&zero_nine_zero), 6);
} }