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