将大NSInteger转换为浮动问题

时间:2016-05-26 06:08:17

标签: ios objective-c floating-point nsinteger

1)定义大的NSInteger
2)施放到浮子上 3)原木浮动
4)每次变成稍小的数字???

NSInteger val = 485935336;
float val_float = (float)val;
NSLog(@"%f", val_float); //logs 485935328, not 485935336

有什么线索?

1 个答案:

答案 0 :(得分:4)

知道为什么吗?当然。 float大约有六位精度。 double有15位精度,这就是为什么你应该总是使用double,除非你能给出一个很好的理由。你会得到同样的问题,但只有当数字更大时。