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

fix: remove scientific notation in DecimalBytes

This commit is contained in:
dudaodong
2024-07-30 14:17:17 +08:00
parent d5752499bf
commit 8f74460c1b
2 changed files with 7 additions and 8 deletions

View File

@@ -92,18 +92,18 @@ func DecimalBytes(size float64, precision ...int) string {
size, unit := calculateByteSize(size, 1000.0, decimalByteUnits) size, unit := calculateByteSize(size, 1000.0, decimalByteUnits)
format := fmt.Sprintf("%%.%df", pointPosition) format := fmt.Sprintf("%%.%df", pointPosition)
result := fmt.Sprintf(format, size) bytes := fmt.Sprintf(format, size)
for i := len(result); i > 0; i-- { for i := len(bytes); i > 0; i-- {
s := result[i-1] s := bytes[i-1]
if s == '0' || s == '.' { if s != '0' && s != '.' {
result = result[:i-1]
} else {
break break
} }
bytes = bytes[:i-1]
} }
return result + unit return bytes + unit
} }
// BinaryBytes returns a human-readable byte size under binary standard (base 1024) // BinaryBytes returns a human-readable byte size under binary standard (base 1024)

View File

@@ -20,7 +20,6 @@ func TestDecimalBytes(t *testing.T) {
assert.Equal("3.123PB", DecimalBytes(float64(3.123*UnitPB))) assert.Equal("3.123PB", DecimalBytes(float64(3.123*UnitPB)))
assert.Equal("4.123EB", DecimalBytes(float64(4.123*UnitEB))) assert.Equal("4.123EB", DecimalBytes(float64(4.123*UnitEB)))
assert.Equal("1EB", DecimalBytes(float64(1000*UnitPB))) assert.Equal("1EB", DecimalBytes(float64(1000*UnitPB)))
assert.Equal("62MB", DecimalBytes(61812496, 0)) assert.Equal("62MB", DecimalBytes(61812496, 0))
assert.Equal("61.8MB", DecimalBytes(61812496, 1)) assert.Equal("61.8MB", DecimalBytes(61812496, 1))
assert.Equal("401MB", DecimalBytes(401000000)) assert.Equal("401MB", DecimalBytes(401000000))