NSLog(@"original float value = %f", [anNSNumber floatValue]);
float newFloat = [anNSNumber floatValue] - 1.0f;
NSLog(@"newFloat = %f", newFloat);
给我
原始浮动值= 215987480044765184.000000
newFloat = 215987480044765184.000000
如何从float
中简单地减去1?
答案 0 :(得分:5)
不,你不能进一步简化它。浮点数与整数不同。
另一点需要注意的是float
类型最多只能包含24位精度(大约6-7位精度的十进制数字)。你在那里的数字超过了float
的可用精度,并且减法量太小而不能影响24位精度,所以操作只需就不会对结果做任何改变
即使您在double
中执行操作,问题也无法解决,因为该数字甚至超过double
的53位精度。
取决于您的要求,您可能需要64位整数类型(long long
类型或更具体的int64_t
)。如果对于更大数量的这种精度是必要的,基本类型将是不够的。如果您需要非常高的精度,可能需要外部库。
答案 1 :(得分:0)
为什么你的第3行:NSLog(@“newFloat =%f”, idOfLastTweet );而不是NSLog(@“newFloat =%f”, newFloat ); ?