【问题标题】:How to keep two decimal place correct?如何保持两位小数正确?
【发布时间】:2016-12-14 03:15:22
【问题描述】:

在我的测试中,当我使用NSStringstringWithFormat:@"%.2f"方法保留两位小数时。

  • [NSString stringWithFormat:@"%.2f", 9999.999]; 结果是: 10000.00

  • [NSString stringWithFormat:@"%.2f", 9999.99]; 结果是:9999.99

  • [NSString stringWithFormat:@"%.2f", 9999.9912]; 结果是:9999.99

我的要求是不管float是什么,我只想保留两位小数,比如9999.999 -> 9999.99,不是我们看到第一个例子的结果,这个怎么办?

【问题讨论】:

  • 使用 NSNumberFormatter

标签: ios objective-c nsstring


【解决方案1】:

试试这个代码

1) 在Objective-c:

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumFractionDigits:2];
[formatter setRoundingMode: NSNumberFormatterRoundDown];

NSString *numberString = [formatter stringFromNumber:[NSNumber numberWithFloat:99.9999]];
NSLog(@"numberString - %@",numberString);

2) 在swift:

let formatter:NumberFormatter = NumberFormatter.init()
formatter.numberStyle = .decimal
formatter.maximumFractionDigits = 2
formatter.roundingMode = .down
let numberString = formatter.string(from: NSNumber.init(value: 99.9999))
print("numberString - \(numberString!)")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多