golang 浮点数比较注意点。去
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang 浮点数比较注意点。去相关的知识,希望对你有一定的参考价值。
func main() {
var f1 float32 = 1.1
var f2 float32 = 1.2
var f3 float32 = f1 + f2 // +2.300000e+000
println(f3 == 2.3)
}
// false
func main() {
var f1 float64 = 1.1
var f2 float64 = 1.2
var f3 float64 = f1 + f2 // +2.300000e+000
println(f3 == 2.3)
}
// true
/////////////////////////////////////////////
// 两个浮点数的差值小于此值时表示这两个浮点数相等
var deltaFloat64 float64 = 0.000001 // 0.0000000001
func IsFloat64Equal(f1, f2 float64) bool {
return math.Abs(f1-f2) < deltaFloat64
}
func TestIsFloat64Equal(t *testing.T) {
convey.Convey("IsFloat64Equal", t, func() {
var f1 float32 = 1.1
var f2 float32 = 1.2
var f3 float32 = f1 + f2
//t.Logf("float32(1.1+1.2) = %.10f", float32(1.1) + float32(1.2))
t.Logf("float32(1.1+1.2) = %.10f", f3)
rs := IsFloat64Equal(float64(f3), 2.3)
convey.So(rs, convey.ShouldBeTrue)
var f4 float64 = 1.1
var f5 float64 = 1.2
var f6 float64 = f4 + f5
t.Logf("float64(1.1+1.2) = %.10f", f6)
rs2 := IsFloat64Equal(float64(f6), 2.3)
convey.So(rs2, convey.ShouldBeTrue)
})
}
// passed
/////////////////////////////////////////////
H. 浮点数
以上是关于golang 浮点数比较注意点。去的主要内容,如果未能解决你的问题,请参考以下文章
php浮点数比较
golang 浮点数 取精度的效率对比
C语言编程中怎么自动去掉浮点数小数点后没用的0。
H. 浮点数
浮点数的那点事
IEEE754二进制浮点数算术标准