小编Eri*_*wan的帖子

为什么浮点乘法与文字与Go中的变量之间存在差异?

为什么Go中的以下不平等?这是一个错误,还是设计?如果是设计,为什么会发生这种情况,这种行为是否记录在任何地方?

https://play.golang.org/p/itEV9zwV2a

package main

import (
    "fmt"
)

func main() {
    x := 10.1

    fmt.Println("x == 10.1:        ", x == 10.1)
    fmt.Println("x*3.0 == 10.1*3.0:", x*3.0 == 10.1*3.0)
    fmt.Println("x*3.0:            ", x*3.0)
    fmt.Println("10.1*3.0:         ", 10.1*3.0)
}
Run Code Online (Sandbox Code Playgroud)

生产:

x == 10.1:         true
x*3.0 == 10.1*3.0: false
x*3.0:             30.299999999999997
10.1*3.0:          30.3
Run Code Online (Sandbox Code Playgroud)

请注意,正在使用不同的语法执行相同的浮点数学运算.那么为什么结果会有所不同呢?我希望在例子中10.1*3.0等于.30.29999...x*3.0

floating-point go

3
推荐指数
1
解决办法
266
查看次数

标签 统计

floating-point ×1

go ×1