问题浮点数

时间:2013-10-30 00:27:47

标签: ios iphone objective-c xcode floating-point

我的浮动变量有问题,我必须做一些操作然后我有一个最后的数字,我看到的是有时候数字不正确,但只是为了一点,例如当我有这个数字我尝试打印它我不会给我相同的数字:

float myNumber = 27589353.0f;
NSLog(@"My Number is  %.2f", myNumber);

结果是:My Number is 27589352.00

我试过把变量加倍,但我有同样的问题。

2 个答案:

答案 0 :(得分:1)

问题在于花车没有足够的精确度,正如Maddy在上面的评论中所说的那样。

这段代码:

double myNumber = 27589353.0f;
NSLog(@"My Number is  %.2f", myNumber);

无论是因为常量上的“f”限定符强制数字为浮点数,导致精度损失,然后在损坏完成后将值提升为double。

但是,此代码可以正常工作:

double myNumber = 27589353.0;
NSLog(@"My Number is  %.2f", myNumber);

(请注意,我正在使用小数分配浮点值,但没有最终的“f”

答案 1 :(得分:-1)

尝试它的工作,你必须删除'f'以及

double myNumber = 27589353.0;
NSLog(@"My Number is  %.2f", myNumber);