0
1)定义大NSInteger的
2)投射到浮动
3)日志浮动
4)每当变为稍小号???
铸造大NSInteger的浮动问题
NSInteger val = 485935336;
float val_float = (float)val;
NSLog(@"%f", val_float); //logs 485935328, not 485935336
任何线索,为什么?
1)定义大NSInteger的
2)投射到浮动
3)日志浮动
4)每当变为稍小号???
铸造大NSInteger的浮动问题
NSInteger val = 485935336;
float val_float = (float)val;
NSLog(@"%f", val_float); //logs 485935328, not 485935336
任何线索,为什么?
任何想法为什么?当然。浮点数约为六位数的精度。 double有15位精度,这就是为什么你应该总是使用双精度,除非你可以给出一个很好的理由。你会得到同样的问题,但只有当数字更大时。
对不起,我的代码与其中的专有信息做了一些不同的事情,当我在这里发布信息时,我很快用@(485935336)替换了它,并点击“发布”,我将使用double,看看我能否获得这工作:D –