簡體   English   中英

投放大型NSInteger以浮動發行

[英]Casting big NSInteger to float issue

1)定義大NSInteger
2)浮起來
3)日志浮動
4)每次變成稍微小的數字???

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

有什么線索嗎?

知道為什么嗎? 當然。 float的精度約為六位數。 double的精度為15位,這就是為什么除非您有充分的理由不使用double的原因,否則應該始終使用double。 您將遇到同樣的問題,但是只有當數字大得多時才如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM