我想在NSString中使用浮點數。我使用stringWithFormat和%f來將我的float整合到NSString中。問題是我想只顯示一位小數(%.1f),但是當沒有小數時,我不想顯示'.0'。NSString - 浮點數的最大1位小數
我該怎麼做?
感謝
我想在NSString中使用浮點數。我使用stringWithFormat和%f來將我的float整合到NSString中。問題是我想只顯示一位小數(%.1f),但是當沒有小數時,我不想顯示'.0'。NSString - 浮點數的最大1位小數
我該怎麼做?
感謝
我發現NSNumberFormatter和setMaximumFractionDigits答案,那麼:
[numberFormatter stringFromNumber:myNumber]
感謝大家尤其是@falconcreek
你可以使用%G這樣
NSLog([NSString stringWithFormat: @"test: %g", (float)1.2]);
NSLog([NSString stringWithFormat: @"test: %g", (float)1])
您應該使用NSNumberFormatter
。
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setFormat:@"#,##0.#"];
NSNumber *oneThousand = [NSNumber numberWithFloat:1000.0];
NSNumber *fivePointSevenFive = [NSNumber numberWithFloat:5.75];
NSLog(@"1000.0 formatted: %@", [numberFormatter stringFromNumber:oneThousand]);
NSLog(@"5.75 formatted: %@", [numberForatter stringFromNumber:fivePointSevenFive]);
Apple格式化編程指南中有一個鏈接指向格式化標準。 便利的參考Number Format Patterns
謝謝,但我在iPhone上開發,它不支持setFormat ... – ncohen 2010-04-29 20:34:32
這樣一種有用的方法。有時間向bug報告者提交功能請求。 – falconcreek 2010-04-30 13:12:13
NSNumberFormatter最近改變了一點點。下面是獲得兩個顯著位數四捨五入的例子:
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterNoStyle];
[numberFormatter setUsesSignificantDigits:YES];
[numberFormatter setMaximumSignificantDigits:2];
而這裏的a link一個良好的,最近的資源。例如
不適用於1.3333333333! – ncohen 2010-04-29 20:33:42