我尝试了几乎所有的解决方案都舍入到小数
他们都没有工作
(round(100 * 17.775)/100)
我得到的结果是17.77
由于四舍五入,我需要17.78
请提供解决方案。
*注意:此问题仅适用于17.775轮,表示解决方案仅对三位小数和 5无效(最后以5结尾仅是问题) *
提前致谢
最佳答案
这是解决方法,检查最后一个数字是否为5或小于5,并相应地执行操作
let numberOfPlaces = 2.0
let multiplier = pow(10.0, numberOfPlaces)
let getLastNumberMultiplier = pow(10.0, numberOfPlaces+1)
var num = 17.775
let lastNumber = Int(num * getLastNumberMultiplier) % 10
if lastNumber >= 5 {
num = round(((num * multiplier ) + 1 ) ) / multiplier
}
else {
num = round(num * multiplier) / multiplier
}
print(num)
关于ios - 尝试舍入17.775,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59984332/