从CGFloat中减去

时间:2012-06-22 02:45:02

标签: iphone ios floating-point cgfloat

NSLog(@"original float value = %f", [anNSNumber floatValue]);

float newFloat = [anNSNumber floatValue] - 1.0f;

NSLog(@"newFloat = %f", newFloat);

给我

  

原始浮动值= 215987480044765184.000000

     

newFloat = 215987480044765184.000000

如何从float中简单地减去1?

2 个答案:

答案 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 ); ?