根据规格:
常量表达式总是精确地求值;中间值和常量本身可能需要比该语言中任何预声明类型支持的精度大得多的精度。
以来
912 * 0.01
是一个常数表达式,它的值精确计算。因此,写作
fmt.Println(912*0.01)与写作具有相同的作用
fmt.Println(9.12)。当你脚
912到
float64,浮点乘法的另一个操作数隐含寄托
float64了。因此,表达式的
float64(912)* 0.01行为类似于
float64(912)* float64(0.01)。0.01在a中不能精确表示
float64,因此精度
float64(912* 0.01)会在与
fmt.Println()您的第一个示例的参数所产生的表达式不同的地方丢失,该表达式解释了不同的结果。



