如何避免在NSNumberFormatter中舍入

Nig*_*ury 10 trim decimal nsnumberformatter ios

我试图有一个最大2位小数精度的数字字符串,而其余的小数只是修剪掉而不是将它们四舍五入.例如:

I have: 123456.9964

I want: 123456.99 -> Just want to trim rest of the decimal places

我试过的是:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle: NSNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:2];
NSString *numberAsString = [numberFormatter stringFromNumber:[NSNumber numberWithFloat: 123456.9964]];
 NSLog(@"%@", numberAsString);
Run Code Online (Sandbox Code Playgroud)

没有什么可以将舍入模式设置为"无".我还能做些什么来维护十进制样式格式以及修剪过的十进制数字?任何帮助将不胜感激.谢谢.

rma*_*ddy 17

以下适用于我:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:2];
// optional - [numberFormatter setMinimumFractionDigits:2];
[numberFormatter setRoundingMode:NSNumberFormatterRoundDown];
NSNumber *num = @(123456.9964);
NSString *numberAsString = [numberFormatter stringFromNumber:num];
NSLog(@"%@", numberAsString);
Run Code Online (Sandbox Code Playgroud)

输出为:123,456.99

你的部分问题是使用numberWithFloat:而不是numberWithDouble:.你的电话号码太多了float.