甚至不要丢失十进制值的最后一个零
Don’t lose even last zero of decimal value
目前我的字符串输入如下所示:16904.48
、9324.00
、6806.10
我希望我的客户端输出:16,904.48
、9,324.00
、6806.10
我写了下面的代码:
-(NSString*)methodChangeNumberFormat:(NSString*)strGivenValue {
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber *nsNumTmp = [numberFormatter numberFromString:strGivenValue];
NSString *strNumFormatted = [numberFormatter stringFromNumber:nsNumTmp];
strNumFormatted = [NSString stringWithFormat:@"$%@",strNumFormatted];
NSLog(@"formattedNumberString: %@", strNumFormatted);
return strNumFormatted;
}
结果:16,904.48
、9,324
、6,806.1
但这不是我想要的,请帮助我获得预期的结果。
现在,我正在关注 NSString
的输入。但我已准备好将输入更改为任何数据类型。
您应该设置数字格式化程序的属性。
[numberFormatter setMinimumFractionDigits:2];
[numberFormatter setGroupingSize:3];
[numberFormatter setGroupingSeparator:@","];
有一种数字格式化程序样式可以完成您想要完成的任务。尝试使用 NSNumberFormatterCurrencyStyle
.
- (NSString *)methodChangeNumberFormat:(NSString*)strGivenValue {
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
// Set decimal style and read given value
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber *numberFromString = [numberFormatter numberFromString:strGivenValue];
// Set currency style and produce formatted value
[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSString *strNumFormatted = [numberFormatter stringFromNumber:numberFromString];
NSLog(@"formattedNumberString: %@", strNumFormatted);
return strNumFormatted;
}
输出:
formattedNumberString: ,904.48
formattedNumberString: ,324.00
formattedNumberString: ,806.10
目前我的字符串输入如下所示:16904.48
、9324.00
、6806.10
我希望我的客户端输出:16,904.48
、9,324.00
、6806.10
我写了下面的代码:
-(NSString*)methodChangeNumberFormat:(NSString*)strGivenValue {
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber *nsNumTmp = [numberFormatter numberFromString:strGivenValue];
NSString *strNumFormatted = [numberFormatter stringFromNumber:nsNumTmp];
strNumFormatted = [NSString stringWithFormat:@"$%@",strNumFormatted];
NSLog(@"formattedNumberString: %@", strNumFormatted);
return strNumFormatted;
}
结果:16,904.48
、9,324
、6,806.1
但这不是我想要的,请帮助我获得预期的结果。
现在,我正在关注 NSString
的输入。但我已准备好将输入更改为任何数据类型。
您应该设置数字格式化程序的属性。
[numberFormatter setMinimumFractionDigits:2];
[numberFormatter setGroupingSize:3];
[numberFormatter setGroupingSeparator:@","];
有一种数字格式化程序样式可以完成您想要完成的任务。尝试使用 NSNumberFormatterCurrencyStyle
.
- (NSString *)methodChangeNumberFormat:(NSString*)strGivenValue {
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
// Set decimal style and read given value
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber *numberFromString = [numberFormatter numberFromString:strGivenValue];
// Set currency style and produce formatted value
[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSString *strNumFormatted = [numberFormatter stringFromNumber:numberFromString];
NSLog(@"formattedNumberString: %@", strNumFormatted);
return strNumFormatted;
}
输出:
formattedNumberString: ,904.48
formattedNumberString: ,324.00
formattedNumberString: ,806.10