我有问题,我需要使用小数点后的第三个数字四舍五入。示例:16373.89732->因为数字是7(第三位数字),所以必须变为16373.90。如果它小于5,则什么也不需要发生,它将保持16373.89。
let tempEndwert = ((1000*endwert).rounded())/1000
-我试了一下,但是不起作用-49263792.69752127-这是数字。我需要将其保存为格式(49263792.70)-取整后。
答案 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