如何在浮点数中添加逗号。 意味着如果我的数字像3652那么输出将是3,652.00和 如果这个数字是3652.359618而不是3,652.36它的工作,但对于3652它不返回两个小数点,如3,652.00 我现在正在使用此代码来执行此操作:
float num = 3652;
NSNumberFormatter * formatter = [NSNumberFormatter new];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumFractionDigits:2];
NSString *newString = [formatter stringFromNumber:[NSNumber numberWithFloat:num]];
答案 0 :(得分:1)
您需要对浮点数进行舍入,使其四舍五入为2位小数,如下所示:
float num = 3652.359618;
num = ceilf(num * 100) / 100;
NSNumberFormatter * formatter = [NSNumberFormatter new];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumFractionDigits:2];
NSString *newString = [formatter stringFromNumber:[NSNumber numberWithFloat:num]];
NSRange range= [newString rangeOfString:@"."];
if ( !range.length) {
newString = [NSString stringWithFormat:@"%@.00",newString];
}
NSLog(@"%@",newString);
以下代码有效,但不确定这是否是一种很好的实现方法。我希望我能得到关于此的意见/反馈。其他更好的答案仍然受到欢迎。
答案 1 :(得分:0)
您应该尝试以下代码:
NSString *newString = [formatter stringFromNumber:[NSNumber numberWithFloat:(num*100.0)/100.0]];
答案 2 :(得分:0)
NSNumberFormatterDecimalStyle
使用设备区域设置来显示数字和分隔符。为了强制执行您自己的格式设置,请尝试在NSNumberFormatter
上设置分隔符:
[formatter setDecimalSeparator:@"."];
[formatter setThousandsSeparator:@","];
答案 3 :(得分:0)
通过对目标的澄清,只需添加:
[formatter setMinimumFractionDigits:2];