刚开始做OFFICE的时候,有人测试发现0.1+0.2-0.3不等于0。这是为何?
大家知道,电脑是2进制的,表示小数时就只能采取近似的办法,于是就产生了这种现象。当时大家认为,这是因为JAVA的精度高。
某年放假时,吾突然灵光一闪,跟当时的吴某讲,这个说法不对。为什么呢?浮点数在内存表示,是有一个规范的(吾估计CPU也只认这个规范)。JAVA不可能自己搞一套,肯定也是这个规范。吴一听就明白了,对啊,JAVA是这样,C肯定也是这样。要得到正确结果,必须另外处理了。
有人问,这个另外处理,怎么处理?就是算一个相对的有效范围。