回答
在大多數語言格式是
%.2f
你可以看到更多的例子here
編輯:如果你的關心點的顯示我也有這個在25.00的情況下
{
NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init];
[fmt setPositiveFormat:@"0.##"];
NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:25.342]]);
NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:25.3]]);
NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:25.0]]);
}
2010-08-22 15:04:10.614 a.out[6954:903] 25.34 2010-08-22 15:04:10.616 a.out[6954:903] 25.3 2010-08-22 15:04:10.617 a.out[6954:903] 25
在iOS上,我不得不使用`setPositiveFormat:`,因爲`setFormat:`方法不存在(僅爲Mac定義),但仍然 - 很好的答案,節省了我幾個小時的試驗,所以+1,非常感謝你:) – FurloSK 2012-10-16 22:16:42
一個問題:是不圓的,但截斷。據推測,使用提問者提供的輸入值和你的代碼,結果不會是他所期望的(22.37)-rather(22.36)。 – 2016-11-08 06:48:18
但是你不能用它進行進一步的計算 – 2017-04-03 15:00:33
可以使用NSDecimalRound功能
[label setText:@"Value: %.2f", myNumber];
您可以使用下面的代碼,它格式化到小數點後兩位
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumFractionDigits:2];
[formatter setRoundingMode: NSNumberFormatterRoundUp];
NSString *numberString = [formatter stringFromNumber:[NSNumber numberWithFloat:22.368511]];
NSLog(@"Result...%@",numberString);//Result 22.37
斯威夫特4:
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.maximumFractionDigits = 2
formatter.roundingMode = .up
let str = String(describing: formatter.string(from: 12.2345)!)
print(str)
我打算帶着傑森的回答,但我注意到在我的Xcode版本(4.3.3)中,我無法做到這一點。所以經過一些研究後,我發現他們最近改變了班級方法,並刪除了所有舊班級的方法。所以這裏就是我不得不這樣做:
NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init];
[fmt setMaximumFractionDigits:2];
NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:25.342]]);
value = (round(value*100))/100.0;
使用的NSNumber * aNumber的= [NSNumber的numberWithDouble:號碼]。而不是NSNumber * aNumber = [NSNumber numberWithFloat:number];
+(NSString *)roundToNearestValue:(double)number
{
NSNumber *aNumber = [NSNumber numberWithDouble:number];
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setUsesGroupingSeparator:NO];
[numberFormatter setMaximumFractionDigits:2];
[numberFormatter setMinimumFractionDigits:0];
NSString *string = [numberFormatter stringFromNumber:aNumber];
return string;
}
要從雙刪除小數,看看這個輸出
的OBJÇ
double hellodouble = 10.025;
NSLog(@"Your value with 2 decimals: %.2f", hellodouble);
NSLog(@"Your value with no decimals: %.0f", hellodouble);
輸出將是:
10.02
10
斯威夫特2.1和Xcode 7.2.1
let hellodouble:Double = 3.14159265358979
print(String(format:"Your value with 2 decimals: %.2f", hellodouble))
print(String(format:"Your value with no decimals: %.0f", hellodouble))
的輸出將是:
3.14
3
你可以這樣做:
NSNumberFormatter* f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
[f setFormat:@0.00"];
// test
NSNumber* a = @12;
NSString* s = [f stringFromNumber:a];
NSLog(@"%@", s);
對於斯威夫特有一個簡單的解決方案,如果你不能既進口基金會,用途round()和/或不想要一個String(通常是在Playground中的情況):
var number = 31.726354765
var intNumber = Int(number * 1000.0)
var roundedNumber = Double(intNumber)/1000.0
結果:31.726
- 1. iPhone:圓形雙倍數值
- 2. Vb.net 2位小數雙倍
- 3. 圓形雙到小數點後兩位
- 4. 圓形雙值至2位十進制數字
- 5. 圓形浮到2個位數蟒蛇
- 6. 圓浮動到2位小數javascript
- 7. 以2位小數進行雙倍轉換的字符串
- 8. 截斷雙精度到2位小數?
- 9. 來比較雙倍和小數,我應該投擲雙倍到十進制或小數雙倍?
- 10. 格式一倍至2位小數
- 11. 圓到小數位的位數
- 12. 圓指數浮點數到2小數
- 13. Bash圓點2位小數點
- 14. 如何限制雙倍打印的小數位數?
- 15. 力雙顯示2位小數
- 16. 圓整雙數到整數?
- 17. 爪哇圓翻倍並獲得雙倍
- 18. 最小值和最大值之間的隨機雙倍數
- 19. 修剪到2位小數
- 20. 的JavaScript Math.round:犯規圓形物體到1位小數
- 21. 從雙倍轉換爲小數
- 22. 在C++中交換雙倍數據位
- 23. 圓形小數截斷小數值 - 向上舍入
- 24. 驗證和2位小數打印雙重價值
- 25. 在Java程序中返回2位小數的雙值
- 26. 雙倍字符串與文化和只有一個小數位
- 27. 獲取雙精度值的小數位
- 28. 整數加倍並保留小數位
- 29. 從長位雙倍
- 30. fmodl - 雙倍模數
你想返回與2位小數價值?或者顯示2位小數的值? – thelaws 2011-02-13 17:48:31
其實我只是需要顯示它 – testndtv 2011-02-13 17:55:39