我有幾個雙倍數值...... 35.44,35.66。我需要四捨五入,結果應該是NSNumber。結果應該是35.4,35.7。那麼該怎麼做?再一次,結果應該是NSNumber,而不是NSString!iPhone:圓形雙倍數值
0
A
回答
3
劃分你可以將其打印到一個字符串,並使用格式字符串到它夾到一個小數點。
NSString *stringRepresentation = [NSString stringWithFormat:@"%.1f", myDouble];
NSNumber *number = [NSNumber numberWithDouble:[stringRepresentation doubleValue]];
0
乘以10,使用舍入函數來剝離小數,然後通過10
0
NSNumber *myNumber = [NSNumber numberWithInt:myDouble];
或
NSNumber *myNumber = [NSNumber numberWithInt:(int)myDouble];
編輯: 我誤解了原來的問題,我想您想雙重存儲在一個NSNumber一個整數值。
爲了回答這些問題,正確的,另一種選擇是一個臨時INT:
double myDouble = 1.23;
int myInt = myDouble * 10;
myDouble = (double)myInt ;
myDouble /= 10;
NSNumber *myNumber = [NSNumber numberWithDouble:myDouble];
您可能會更好只是儲存的雙發中的NSNumber,但並四捨五入當你在以後檢索。
編輯2:
一個更精簡的版本是:
double myDouble = 1.23;
myDouble = (int)(myDouble * 10);
NSNumber *myNumber = [NSNumber numberWithDouble:myDouble/10];
它可能會更好不必創建一個臨時的NSString ......恕我直言
+0
如果'(double)myInt'大於'MAXINT',會發生什麼? – 2012-01-18 17:32:03
+0
不知何故,我認爲你知道這個答案;)這麼好的電話。 OP,確保目標設備上的int小於maxint。但是,OP給出的雙重價值對於這種方法來說很好。 – ader 2012-01-18 17:38:55
相關問題
- 1. 圓形雙倍數值到2位小數
- 2. 爪哇圓翻倍並獲得雙倍
- 3. 如何使用currencyStyle數字作爲雙倍數值iphone
- 4. safari svg與雙倍寬度的橢圓
- 5. 雙倍和雙倍?互換?
- 6. Objective-C的圓形雙打
- 7. 圓形雙鏈表ListIterator
- 8. 圓形雙到小數點後兩位
- 9. fmodl - 雙倍模數
- 10. js雙倍數值範圍檢查
- 11. 總結雙倍ReadLine值?
- 12. 圓形雙值至2位十進制數字
- 13. 生成隨機正雙倍返回負雙倍值
- 14. 精準雙倍差於雙倍
- 15. 爲什麼雙倍「==」和「等於」雙倍?
- 16. 在雙倍和雙倍差異
- 17. 比較C值的雙倍值
- 18. 將單個值轉換爲雙倍值
- 19. 奇數行爲比較雙倍,兩個PHP雙值不等價
- 20. Vb.net 2位小數雙倍
- 21. 來比較雙倍和小數,我應該投擲雙倍到十進制或小數雙倍?
- 22. 雙倍精度
- 23. 雙倍遞增
- 24. 雙倍不減
- 25. 雙倍計劃
- 26. Java:在負雙倍和正雙倍的範圍內生成隨機雙數
- 27. javascript:N維數組的圓形數值
- 28. 圓形雙鏈表無限循環
- 29. 圓形,雙鏈表 - 分割錯誤
- 30. 圓形雙鏈表 - 分段錯誤:11
而且沒有另一種方式,而不轉化 – Jim 2012-01-18 15:54:36
+1涵蓋四捨五入,並且不會導致任何溢出:) – matm 2012-01-18 19:57:48