我有一个只包含数字的文本字段。我需要数字遵守最多3个有效数字和最多2个小数位。我还需要保留原始值,并且只想更改值的显示方式。我暂时通过在小数点处分割数字并删除超过2位小数来暂时解决问题但我希望使用NSNumberFormatter并删除该代码。这就是我想要做的事情:
NSNumber *customCalculation = @(0.04791234);
NSNumberFormatter *formatter = [[NSNumberFormatter alloc]init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setUsesSignificantDigits:YES];
[formatter setMaximumSignificantDigits:3];
[formatter setMaximumFractionDigits:2];
customTextField.text = [formatter stringFromNumber: customCalculation];
输出为:0.0479。不知道我在哪里弄错了。
答案 0 :(得分:1)
0.0479
有3位有效数字。有效数字是前导零后的数字。
NSNumberFormatter *formatter = [[NSNumberFormatter alloc]init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumFractionDigits:2];
那会给0.05
。要将0.04
作为输出,您还需要更改舍入行为(因为0.04791234
应该是0.05
,精度为2dp。)
NSNumberFormatter *formatter = [[NSNumberFormatter alloc]init];
[formatter setRoundingMode:NSNumberFormatterRoundDown];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumFractionDigits:2];
收益率0.04
。