小编Mac*_*077的帖子

不能使用特定的 float32 值作为映射键

使用 float32 作为映射键返回意外结果

package main

import "fmt"

func main() {
    result := make(map[float32]map[float32]float32)

    var t1 float32 = 1586238540
    var t2 float32 = 1586238600

    result[t1] = map[float32]float32{1:1,2:2}
    result[t2] = map[float32]float32{3:3,4:4}

    fmt.Println(result[t1])
    fmt.Println(result[t2])
}
Run Code Online (Sandbox Code Playgroud)
map[3:3 4:4]
map[3:3 4:4]
Run Code Online (Sandbox Code Playgroud)

去版本: go version go1.14 linux/amd64

更改resultmap[float64]map[float32]float32t1t2相应地给出正确的结果。

这种奇怪行为的原因是什么?

floating-point go

0
推荐指数
1
解决办法
293
查看次数

标签 统计

floating-point ×1

go ×1