Merge pull request #1478 from lazylife7157/magnitude_seperator_format

Fix #1476 Magnitude seperator format bug
This commit is contained in:
Jeong YunWon
2019-10-06 14:29:20 +09:00
committed by GitHub
2 changed files with 12 additions and 6 deletions

View File

@@ -18,3 +18,12 @@ def test_zero_padding():
assert f'{i:04d}' == '0001'
test_zero_padding()
assert '{:,}'.format(100) == '100'
assert '{:,}'.format(1024) == '1,024'
assert '{:_}'.format(65536) == '65_536'
assert '{:_}'.format(4294967296) == '4_294_967_296'
assert f'{100:_}' == '100'
assert f'{1024:_}' == '1_024'
assert f'{65536:,}' == '65,536'
assert f'{4294967296:,}' == '4,294,967,296'

View File

@@ -279,15 +279,12 @@ impl FormatSpec {
separator: char,
) -> String {
let mut result = String::new();
let mut remaining: usize = magnitude_string.len() % interval;
if remaining == 0 {
remaining = interval;
}
let mut remaining: usize = magnitude_string.len();
for c in magnitude_string.chars() {
result.push(c);
if remaining == 0 {
remaining -= 1;
if remaining % interval == 0 && remaining > 0 {
result.push(separator);
remaining = interval;
}
}
result