我試圖格式化一些float
S作爲如下:截斷額外的零格式化浮動到一個NSString
1.1500將顯示爲「$ 1.15」
1.1000將顯示爲「$ 1.0」
1.0000將顯示爲「$ 1.00」
1.4710將顯示爲「$ 1.471」
1.4711將顯示爲「$ 1.4711」
我試着用
NSString *answer = [NSString stringWithFormat:@"$ %.2f",myvalue];
我試圖格式化一些float
S作爲如下:截斷額外的零格式化浮動到一個NSString
1.1500將顯示爲「$ 1.15」
1.1000將顯示爲「$ 1.0」
1.0000將顯示爲「$ 1.00」
1.4710將顯示爲「$ 1.471」
1.4711將顯示爲「$ 1.4711」
我試着用
NSString *answer = [NSString stringWithFormat:@"$ %.2f",myvalue];
我必須弄明白這個文檔。你可以按照下面的實現來做到這一點。
請大家看看下面的演示代碼...
NSArray * numbers = [[NSArray alloc] initWithObjects:@"1.1500",@"1.1000",@"1.0000",@"1.4710",@"1.4711",nil];
for (int i=0; i<[numbers count]; i++) {
NSArray * floatingPoint = [[numbers objectAtIndex:i] componentsSeparatedByString:@"."];
NSString * lastObject = [[floatingPoint lastObject] stringByReplacingOccurrencesOfString:@"0" withString:@""];
if ([lastObject length] < 2) {
NSLog(@"%@",[NSString stringWithFormat:@"$ %.2f",[[numbers objectAtIndex:i] floatValue]]);
} else {
NSLog(@"%@",[NSString stringWithFormat:@"$ %g",[[numbers objectAtIndex:i] floatValue]]);
}
}
感謝,
MinuMaster
試試這個:
NSString *answer = [NSString stringWithFormat:@"%.02f", myvalue];
這正是NSNumberFormatter
s是:
float onefifteen = 1.1500; // displayed as 「$ 1.15」
float oneten = 1.1000; // displayed as 「$ 1.10」
float one = 1.0000; // displayed as 「$ 1.00」
float onefortyseventen = 1.4710; // displayed as 「$ 1.471」
float onefortyseveneleven = 1.4711; // displayed as 「$ 1.4711」
NSNumberFormatter * formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[formatter setUsesSignificantDigits:YES];
// The whole number counts as the first "significant digit"
[formatter setMinimumSignificantDigits:3];
NSLog(@"%@", [formatter stringFromNumber:[NSNumber numberWithFloat:onefifteen]]);
NSLog(@"%@", [formatter stringFromNumber:[NSNumber numberWithFloat:oneten]]);
NSLog(@"%@", [formatter stringFromNumber:[NSNumber numberWithFloat:one]]);
NSLog(@"%@", [formatter stringFromNumber:[NSNumber numberWithFloat:onefortyseventen]]);
NSLog(@"%@", [formatter stringFromNumber:[NSNumber numberWithFloat:onefortyseveneleven]]);
2011-12-15 19:36:52.185 S ignificantCents [49282:903] $ 1.15
2011-12-15 19:36:52.190 SignificantCents [49282:903] $ 1.10
2011-12-15 19:36:52.190 SignificantCents [49282:903] $ 1.00包裝
2011-12 -15 19:36:52.191 SignificantCents [49282:903] $ 1.471
2011-12-15 19:36:52.192 SignificantCents [49282:903] $ 1.4711
它是爲前三個工作正常comments.but不履行最後兩個iefor`1.4710 - > 1.471`和`1.4711 - > 1.4711` – Heena 2011-12-15 10:43:40
請參閱此鏈接http://www.iphonedevsdk.com/forum/iphone-sdk-development/37665-float-string-removing-trailing-zeros .html – Maulik 2011-12-15 10:48:11