浮动异常行为目标c

时间:2015-05-02 22:33:06

标签: ios objective-c floating-point

我在目标C中遇到了 float 的异常问题。我输入 100.1 ,我得 100.100002 不应该是类似 100.100000

以下是代码

float temp=100.1;
NSLog(@"%f",temp); 

100.100000

有人可以指导我做错了什么或如何解决?我不能使用固定的小数位数i-e我不能只使用 100.10 。我需要所有小数位。

2 个答案:

答案 0 :(得分:1)

因为这是在二进制中表示任意floating point value时发生的事情的基本部分。二进制数字的数量是有限的,因此发生舍入。根据您的需要,您可能最好使用NSDecimalNumber

答案 1 :(得分:-1)

请尝试使用double;

double temp=100.1;
NSLog(@"%.8f",temp);

100.10000000

这是表示准确性的问题。我不认为使用double会有问题。