我有一个问题,我的浮点型变量,我必须做一些操作,然后我有一个最后的数字,我看到的是有些时候数字是不正确的,但只是一个例子当我有这个号码,我尝试打印我不给我回同一个号码:问题与浮号
float myNumber = 27589353.0f;
NSLog(@"My Number is %.2f", myNumber);
结果为:My Number is 27589352.00
我试图把可变双,但我有同样的问题。
我有一个问题,我的浮点型变量,我必须做一些操作,然后我有一个最后的数字,我看到的是有些时候数字是不正确的,但只是一个例子当我有这个号码,我尝试打印我不给我回同一个号码:问题与浮号
float myNumber = 27589353.0f;
NSLog(@"My Number is %.2f", myNumber);
结果为:My Number is 27589352.00
我试图把可变双,但我有同样的问题。
尝试喜欢它的工作,你必须删除“F”以及
double myNumber = 27589353.0;
NSLog(@"My Number is %.2f", myNumber);
这也不正确。您正在将myNumber设置为一个长整型,它不能存储浮点值。在这个问题上跳舞。看到我的帖子下面的解决方案。 –
(或者看到我上面的评论,你复制后甚至无法得到它。) –
当我发布我的答案评论不存在 - .-我有几天前回答类似的答案,@DuncanC什么我告诉他只是问题是'f',所以现在我更新我的答案,您可以删除您的-1 .- –
的问题是,浮动不具备足够的精度,如麦迪在上面的评论说。
而这种代码:
double myNumber = 27589353.0f;
NSLog(@"My Number is %.2f", myNumber);
将无法工作或者是因为在恒定的力量“F”限定的数量是一个浮动,导致精度损失,进而促进价值双,一旦造成损害。
此代码然而,将正常工作:
double myNumber = 27589353.0;
NSLog(@"My Number is %.2f", myNumber);
(请注意,我指定了十进制浮点值,但最后还是没有“F”
的http://浮点-gui.de - foating-point类型不准确 – 2013-10-30 00:29:10
对'float'的精度太高了,使用'double' – rmaddy
@rmaddy“我试过把变量double放进去,但是我有同样的问题。 “ – 2013-10-30 00:30:53