1)定义大的NSInteger
2)施放到浮子上
3)原木浮动
4)每次变成稍小的数字???
NSInteger val = 485935336;
float val_float = (float)val;
NSLog(@"%f", val_float); //logs 485935328, not 485935336
有什么线索?
答案 0 :(得分:4)
知道为什么吗?当然。 float大约有六位精度。 double有15位精度,这就是为什么你应该总是使用double,除非你能给出一个很好的理由。你会得到同样的问题,但只有当数字更大时。