1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-17 11:12:28 +08:00

fix: fix bug of Comma, issue #248

This commit is contained in:
dudaodong
2024-09-27 10:18:37 +08:00
parent f99a8ef3cf
commit adf18a2e47
2 changed files with 14 additions and 1 deletions

View File

@@ -26,16 +26,25 @@ func Comma[T constraints.Float | constraints.Integer | string](value T, symbol s
return "" return ""
} }
isNegative := strings.HasPrefix(numString, "-")
if isNegative {
numString = numString[1:]
}
index := strings.Index(numString, ".") index := strings.Index(numString, ".")
if index == -1 { if index == -1 {
index = len(numString) index = len(numString)
} }
for index > 3 { for index > 3 {
index = index - 3 index -= 3
numString = numString[:index] + "," + numString[index:] numString = numString[:index] + "," + numString[index:]
} }
if isNegative {
numString = "-" + numString
}
return symbol + numString return symbol + numString
} }

View File

@@ -28,6 +28,10 @@ func TestComma(t *testing.T) {
assert.Equal("12,345.6789", Comma(+12345.6789, "")) assert.Equal("12,345.6789", Comma(+12345.6789, ""))
assert.Equal("12,345,678.9", Comma(12345678.9, "")) assert.Equal("12,345,678.9", Comma(12345678.9, ""))
assert.Equal("123,456,789,000", Comma(123456789000, "")) assert.Equal("123,456,789,000", Comma(123456789000, ""))
assert.Equal("-999", Comma(-999, ""))
assert.Equal("-1,000", Comma(-1000, ""))
assert.Equal("-1,234,567", Comma(-1234567, ""))
} }
func TestPretty(t *testing.T) { func TestPretty(t *testing.T) {