在Swift中将字符串转换为Double会显示多余的小数位[重复]

问题描述 投票:0回答:1
我试图通过将输入数字转换为字符串然后再转换为双精度,将数字四舍五入到小数点后7位。字符串的值就是我想要的值,但是将其转换回小数点后两位时会显示出来。这种情况有什么补救办法吗?

let inputNumber: Double = 99.99990338164251 let roundedString = String(format: "%.7f", inputNumber) //"99.9999034" let outputNumber = Double(roundedString) //99.99990339999999

swift string format double rounding
1个回答
0
投票
使用Decimal类而不是Doublehttps://developer.apple.com/documentation/foundation/decimal

您的问题是浮点数计算的常见问题

关于ObjC类https://developer.apple.com/documentation/foundation/nsdecimalnumber的更多详细信息>

© www.soinside.com 2019 - 2024. All rights reserved.