refactor(significant_digits): obsolete temp value

also use the correct value for if all digits are significant,
since we filter out the dot(s). in practice though, this is very rare.
This commit is contained in:
electria 2026-07-21 13:29:38 -07:00
commit 6e141a0132
Signed by: electria
SSH key fingerprint: SHA256:8LlB3ucPbBHqozqkhsNbaV5oG3SlzzqUj8FZDL6IPQs

View file

@ -30,7 +30,6 @@ pub fn parse_and_calc(s: &str) -> Float {
pub fn get_significant_digits(n: &Float) -> usize { pub fn get_significant_digits(n: &Float) -> usize {
let raw_string: String = format!("{n}").chars().filter(|c| *c != '.').collect(); let raw_string: String = format!("{n}").chars().filter(|c| *c != '.').collect();
let mut significant_digits = raw_string.len() - 1;
let mut consecutive_zeros = 0; let mut consecutive_zeros = 0;
let mut consecutive_nines = 0; let mut consecutive_nines = 0;
for (i, c) in raw_string.char_indices() { for (i, c) in raw_string.char_indices() {
@ -47,20 +46,18 @@ pub fn get_significant_digits(n: &Float) -> usize {
} }
if consecutive_zeros >= 10 { if consecutive_zeros >= 10 {
significant_digits = i + 1 - consecutive_zeros; return i + 1 - consecutive_zeros;
break;
} else if consecutive_nines >= 10 { } else if consecutive_nines >= 10 {
significant_digits = i + 1 - consecutive_nines; return i + 1 - consecutive_nines;
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; return i;
break;
} }
} }
significant_digits // all digits are significant
raw_string.len()
} }
#[test] #[test]