写在前面:大家面试的时候可能会经常遇到考察浮点数与零比较的问题,是简单的 f == 0 吗?当然不是,正确的写法应该是f > -1e-7 && f < 1e-7,为什么呢?
浮点型,由于精度关系(float精度:2^23 = 8388608,一共7位,同理double 16位),最小分辨0.0000001, 当存储一个数时,只有7位是准确的,比如存储0,可能在内存中的值为0.00000001321。。。。。 所以判断浮点型的0值最好用fabs(i) < 0.0000001
如:125.5 = 1111101.1(1.1111011*2^6),三个段分别为 0, 10000101(127+6=133), 11110110000000000000000
下面提供一个Demo,大家有兴趣的话可以直接修改自行验证其他的例子:
运行结果:
好了,就写到这里,关于浮点数的核心内容大致就这些了,希望大家都能掌握,不断提升自己的水平。