面试题答案
一键面试package main
import (
"fmt"
)
func main() {
a := 0.1
b := 0.2
sum := a + b
fmt.Printf("%.17f\n", sum)
}
浮点数在简单加法运算时出现精度问题,是因为计算机使用二进制来存储数字,而像 0.1
和 0.2
这样的十进制小数无法精确地用二进制表示。例如,0.1
的二进制表示是一个无限循环小数 0.00011001100110011...
,计算机存储时只能截取一定长度,这就导致了精度损失。在进行加法运算时,这些近似值运算后,就会出现如 0.1 + 0.2
结果不是精确的 0.3
,而是 0.30000000000000004
的情况。