diff --git a/internal/utils/numberutils/utils.go b/internal/utils/numberutils/utils.go index 411d6b39..60394c56 100644 --- a/internal/utils/numberutils/utils.go +++ b/internal/utils/numberutils/utils.go @@ -4,7 +4,6 @@ import ( "fmt" "github.com/iwind/TeaGo/types" "strconv" - "strings" ) func FormatInt64(value int64) string { @@ -50,15 +49,5 @@ func FloorFloat32(f float32, decimal int) float32 { return f } - var s = fmt.Sprintf("%f", f) - var index = strings.Index(s, ".") - if index < 0 { - return f - } - - var d = s[index:] - if len(d) <= decimal+1 { - return f - } - return types.Float32(s[:index] + d[:decimal+1]) + return types.Float32(fmt.Sprintf("%.2f", f)) } diff --git a/internal/utils/numberutils/utils_test.go b/internal/utils/numberutils/utils_test.go index 557b990b..8d2545e6 100644 --- a/internal/utils/numberutils/utils_test.go +++ b/internal/utils/numberutils/utils_test.go @@ -35,3 +35,9 @@ func TestFloorFloat32(t *testing.T) { t.Logf("%f, %f", numberutils.FloorFloat32(123.456789, 4), 123.456789*10*10*10*10) t.Logf("%f", numberutils.FloorFloat32(-123.45678, 2)) } + +func TestFloorFloat32_Special(t *testing.T) { + for _, f := range []float32{17.88, 1.11, 1.23456} { + t.Logf("%f", numberutils.FloorFloat32(f, 2)) + } +}