如何使用浮点数修复 go math 运算中的计算错误?

我需要标准化一个值(度)以使其在某个范围内。我需要提醒一下 360 除法。


func testFunc(t *testing.T) {


    v := -1050.6

    n := int(v / 360)

    f := v - float64(n)*360


    fmt.Printf("f: %v\n", f)

}

我期望-330.6的值是我得到的值-330.5999999999999。当我这样做时会发生这种情况v - float64(n)*360。有没有办法摆脱这个错误?


HUX布斯
浏览 68回答 1
1回答

小唯快跑啊

您可以试试这个(逗号后 2 位数字):fmt.Println(math.Round(f * 100) / 100)
打开App,查看更多内容
随时随地看视频慕课网APP