ios - 尝试舍入17.775

标签 ios swift double rounding

我尝试了几乎所有的解决方案都舍入到小数
他们都没有工作

(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)

enter image description here

enter image description here

关于ios - 尝试舍入17.775,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59984332/

相关文章:

objective-c - 使用 NSData 和 NSCoding 加载 iOS 自定义文件格式

ios - GeoFire + Swift 3 观察停不下来

c++ - 以给定的年复利利率计算任何金额翻倍的时间

java - 可能会损失精度/[类型]无法取消引用

swift - 无法将图像添加到 Xcode 中的图像按钮

c++ - 原始双类型比较的 GCC 问题

ios - 从模拟器中的 firebase 加载图像后,图像不断变化

ios - 在 Xcode 5 中打开后无法在 Xcode 4.5 中打开 Xcode 项目

iphone - 链接iOS fat库后出现 "_OBJC_CLASS_$_NgnEngine"错误

ios - 滚动到另一个 : weird behavior 时 TableView 折叠单元格