从结构图中打印出一些值时.我看到某些float64值与替代表示法.测试通过,但你如何阅读这个符号(4e-06).这个值确实与“0.000004”相同吗?
package main import ( "fmt" "strconv" "testing" ) func TestXxx(t *testing.T) { num := fmt.Sprintf("%f",float64(1.225788)-float64(1.225784)) // 0.000004 f,_ := strconv.ParseFloat(num,64) if f == 0.000004 { t.Log("Success") } else { t.Error("Not Equal",num) } if getFloat(f) == 0.000004 { t.Log("Success") }else{ t.Error("Fail",getFloat(f)) } } func getFloat(f float64) float64 { fmt.Println("My Float:",f) // 4e-06 return f }
这种表示法称为
Scientific notation,它是以紧凑,简短的形式打印非常小或非常大的数字的便捷方式.
它的形式是
m × 10n
(m乘十次提升到n的力量)
在编程语言中,它被编写/打印为:
m
e
n
见Spec: Floating-point literals.
您的号码:4e-06,其中m = 4且n = -6,这意味着4 * 10-6等于0.000004.