如何将小数点后两位四舍五入到第三位

时间:2019-09-11 07:05:52

标签: ios swift xcode

我有问题,我需要使用小数点后的第三个数字四舍五入。示例:16373.89732->因为数字是7(第三位数字),所以必须变为16373.90。如果它小于5,则什么也不需要发生,它将保持16373.89。

let tempEndwert = ((1000*endwert).rounded())/1000-我试了一下,但是不起作用-49263792.69752127-这是数字。我需要将其保存为格式(49263792.70)-取整后。

3 个答案:

答案 0 :(得分:4)

您可以通过以下方式实现

extension Formatter {
    static let number = NumberFormatter()
}

extension FloatingPoint {
    var asNumberString : String {
        Formatter.number.minimumFractionDigits = 2
        Formatter.number.maximumFractionDigits = 2
        Formatter.number.roundingMode = .halfEven
        Formatter.number.numberStyle = .decimal
        return Formatter.number.string(for: self) ?? ""
    }
}

现在您可以像

一样进行测试

150.51581.asNumberString ===>“ 150.52”
 150.5141531.asNumberString ===>“ 150.51”

答案 1 :(得分:0)

根据要求将Double转换为String最多至小数位。您可以直接保存String而不是Double,即

let num = 16373.89732
let str = String(format: "%.2f", num)
print(str) //16373.90

答案 2 :(得分:0)

 your_button.setOnClickListener(new SingleClickListener(v -> {
            // do something here
        }));

如果您尝试将数字保存为String,则结果将为“ 49263792.70”

但是,仅将其四舍五入并存储为Double即可将其存储为49263792.7