-3
Как поплавок арифметика работа в GoGolang поплавок арифметика
площадка link
package main
import "fmt"
func main() {
j := 1.021
fmt.Println(j)
k := j*1000
fmt.Println(k)
l := int(k)
fmt.Println(l)
}
Output:
1.021
1020.9999999999999
1020
Я ожидал 1021
для печати, но я получил 1020
Может быть, ваш сюрприз приходит от игнорирования, что 1,021 не совсем фракция 1021/1000, но как можно ближе к поплавку этой фракции ... Пожалуйста, прочитайте рекомендуется литература с тегом с плавающей точкой. –
Спасибо. Это разъясняет это. Интересно, что я не понимал, почему у меня возникли проблемы с вопросом. Я действительно искал вокруг и не мог найти ясную причину. Каким-то образом я думал, что это особенность Go, в то время как это кажется очень общим. – Sundar
@ ThomasPadron-McCarthy да, это так. Благодарю. Интересно, что пост получил 811 upvotes, а мой -3. – Sundar