From 6e141a01323965bd9f783cc680a1d58a35652d47 Mon Sep 17 00:00:00 2001 From: electria Date: Tue, 21 Jul 2026 13:29:38 -0700 Subject: [PATCH] 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. --- src/main.rs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/main.rs b/src/main.rs index 9e93fa5..5a73914 100644 --- a/src/main.rs +++ b/src/main.rs @@ -30,7 +30,6 @@ pub fn parse_and_calc(s: &str) -> Float { pub fn get_significant_digits(n: &Float) -> usize { 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_nines = 0; for (i, c) in raw_string.char_indices() { @@ -47,20 +46,18 @@ pub fn get_significant_digits(n: &Float) -> usize { } if consecutive_zeros >= 10 { - significant_digits = i + 1 - consecutive_zeros; - break; + return i + 1 - consecutive_zeros; } else if consecutive_nines >= 10 { - significant_digits = i + 1 - consecutive_nines; - break; + return i + 1 - consecutive_nines; } if !raw_string[i..raw_string.len()].contains(|c| matches!(c, '1'..='9')) { - significant_digits = i; - break; + return i; } } - significant_digits + // all digits are significant + raw_string.len() } #[test]