注册 登录
编程论坛 C++教室

为什么说比较两个浮点数是否相等是不安全的?

wibrst 发布于 2008-12-12 12:27, 3218 次点击
请指点!
6 回复
#2
debroa7232008-12-12 14:21
浮点数在计算机存储设备上是有误差的,我们在考虑到精度不大的情况下,比较两浮点数是否相等使用的方法是:
if( (f1-f2) < 0.0001f && (f1-f2) > -0.0001f )
{
     //在精度为小数点后四位的要求下,这两个数视为相等
}
#3
峻峰2008-12-12 18:35
浮点数的精确度不像整数那样
浮点数只要小数点后面一个数字对不上号,就不能划等号的。
只能精确近视等于,方法就像版主说的那样,
那条式子,其实就是数学上在数轴上面,两个数字的距离。
#4
hitcolder2008-12-13 15:25
学习了!
#5
Woodswift2008-12-13 16:24
RE:
浮点数做相等判断的时候是和数学意义下不同的,因为数据在计算机内以二进制存储,浮点数和二进制数并不一一对应。
#6
p1s2008-12-13 19:14
误差问题,呵呵。浮点数的范围更大,但是并不是绝对精确。
#7
隨心所欲2008-12-13 22:48
1