为了账号安全,请及时绑定邮箱和手机立即绑定

进行不同结果的数学运算

进行不同结果的数学运算

Go
拉莫斯之舞 2021-08-30 16:42:54
我希望)这不是关于 Go 中浮点数学准确性的问题。下面我有一个带有 2 个表达式的测试函数,我认为它们应该产生相同的结果,但给定输入,产生不同的输出。编辑这最终只是关于浮点精度。package mainimport "fmt"func main() {    fmt.Println(test(10.0, 0.1, 1.0)) // 0.2    fmt.Println(test(10.0, 0.2, 1.0)) // 0.3    fmt.Println(test(10.0, 0.3, 1.0)) // 0.4    fmt.Println(test(10.0, 0.4, 1.0)) // 0.5    fmt.Println(test(10.0, 0.5, 1.0)) // 0.6}func test(plays float64, rate float64, value float64) float64 {    // return (value/plays) + rate    return (plays*rate + value) / plays}第一个表达式(value/plays) + rate打印:0.20.300000000000000040.40.50.6而第二个表达式(plays*rate + value) / plays打印预期的输出:0.20.30.40.50.6为什么是这样?
查看完整描述

目前暂无任何回答

  • 0 回答
  • 0 关注
  • 196 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信