NSLog(@"original float value = %f", [anNSNumber floatValue]);
float newFloat = [anNSNumber floatValue] - 1.0f;
NSLog(@"newFloat = %f", newFloat);
给我
orginal float value = 215987480044765184.000000
newFloat = 215987480044765184.000000
如何从 float
中简单地减去 1?
最佳答案
不,你不能进一步简化它。 float 不同于整数。
另一件需要注意的事情是 float
类型最多只能包含 24 位精度(大约 6-7 位小数精度)。你那里的数字超过了float
可用的精度,并且减法量太小而不会影响24位精度,所以操作只是不会对结果做任何改变.
即使在double
中进行操作,问题也没有解决,因为数字甚至超过了double
的53位精度。
根据您的要求,您可能需要 64 位整数类型(long long
类型,或更具体的 int64_t
)。如果更大的数字需要这样的精度,则基本类型是不够的。如果您需要非常高的精度,则可能需要外部库。
关于iphone - 从 CGFloat 中减去,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11149560/