我做的很简单:
float x = 151.185436;
printf("x=%f",x);
,结果是
X = 151.185440
这里有什么不对?我想保留并打印我的原始值151.185436
由于 Amarsh
答案 0 :(得分:3)
答案 1 :(得分:2)
浮点数只能容纳32位(4字节)有关您的号码的信息 - 它不能只存储您需要的小数位数。 151.18544与浮点数可以表示的值接近,而不会耗尽位数。
对于您想要的精度,您需要使用double而不是float。
答案 2 :(得分:0)
浮动不准确,使用双打。另外,当您使用Objective C而不是直接C时,如果您使用Objective C函数可能会更好:
myNumber = [NSNumber numberWithDouble:151.185436];
NSLog(@"myNumber = %@", myNumber);