我在将浮点数限制为两个小数位方面遇到了问题,并且在swift中提供了一个逗号分隔的结果。我尝试了以下代码:

var myNum = 99.999999
myNum = (myNum * 100).rounded() / 100
print(myNum)
//Result : 100.0, Required_Result : 99.99



let formatted = String(format: "myNum: %.2f", myNum)
//Result : 100.00, Required_Result : 99.99

例如:1234.99999的结果应为1234.99
对于逗号分隔和截断到两个小数位,我使用了:
 let numberFormatter = NumberFormatter()
 numberFormatter.maximumFractionDigits = 2
 numberFormatter.numberStyle = NumberFormatter.Style.decimal
 let formattedNumber = numberFormatter.string(from: NSNumber(value: number))
 return formattedNumber!

以上代码给出以下结果:
编号:9999.9984
结果:1000.0
要求结果:9999.99

最佳答案

使用NSNumberFormatter并相应地配置其舍入模式:

    let formatter = NumberFormatter()
    formatter.maximumFractionDigits = 2
    formatter.roundingMode = .down
    let s = formatter.string(from: 99.99999)
    print(s as Any) //99.99

关于ios - 将浮点数限制为小数点后两位,并为Swift中的数字提供逗号分隔格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53941200/

10-12 15:38