如何在浮点数中添加逗号

时间:2014-03-27 12:12:37

标签: ios objective-c string comma

如何在浮点数中添加逗号。 意味着如果我的数字像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]];

4 个答案:

答案 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];