我在目标C中遇到了 float 的异常问题。我输入 100.1 ,我得 100.100002 不应该是类似 100.100000 。
以下是代码
float temp=100.1;
NSLog(@"%f",temp);
100.100000
有人可以指导我做错了什么或如何解决?我不能使用固定的小数位数i-e我不能只使用 100.10 。我需要所有小数位。
答案 0 :(得分:1)
因为这是在二进制中表示任意floating point value时发生的事情的基本部分。二进制数字的数量是有限的,因此发生舍入。根据您的需要,您可能最好使用NSDecimalNumber
。
答案 1 :(得分:-1)
请尝试使用double
;
double temp=100.1;
NSLog(@"%.8f",temp);
100.10000000
这是表示准确性的问题。我不认为使用double
会有问题。