Использование 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])
}
map[3:3 4:4]
map[3:3 4:4]
Go версия: go version go1.14 linux/amd64
Изменение result
на map[float64]map[float32]float32
и t1
, t2
соответственно дает правильный результат.
В чем может быть причина этого странного поведения?