2017-01-16 49 views
0

由于显示如下图所示: like this隐藏整数以浮动。问题解决了,但不知道为什么

我文本框的值与99999999进行比较,并会根据结果的行为不同。

最后我发现integerValue或doubleValue方法返回正确的值, 但谁能解释我为什么?为什么floatValue在这里是100000000?是不是可以预测的?

感谢您的提前。

+1

单精度浮点数仅具有精度大约6个十进制数字 - int和double都要多。在这里了解更多关于浮点数的信息:https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html –

+0

使用'NSNumberFormatter' – aircraft

+0

@PaulR是的,我已经了解了不同数据类型的精度,谢谢。仍然徘徊为什么是100000000 :) – CoderWang

回答

0

浮点数在计算机硬件中表示为基2(二进制)分数。

大多数小数不能完全表示为二进制分数。其结果是,通常,您输入的十进制浮点数仅通过实际存储在机器中的二进制浮点数来近似。

有你可以参考文档:http://www.c64-wiki.com/index.php/Floating_point_arithmetic

相关问题