【发布时间】:2010-11-14 16:18:53
【问题描述】:
我有一个小问题,我找不到解决办法!
我的代码是(这只是一个示例代码,但我的原始代码是这样的):
float x = [@"2.45" floatValue];
for(int i=0; i<100; i++)
x += 0.22;
NSLog(@"%f", x);
输出是 52.450001 而不是 52.450000 !
我不知道,因为会发生这种情况!
感谢您的帮助!
~已解决~
谢谢大家!是的,我已经用double类型解决了!
【问题讨论】:
-
hanno 的链接解释了这个问题。这个特殊的例子不会出现在 double 而不是 float 的情况下,但存在相同的基本缺陷。
-
不过,Double 会因其他数字而中断。试试十进制。
标签: objective-c cocoa floating-point floating-point-precision