swift - 如何在 Swift 中四舍五入到小数点后两位?

标签 swift math decimal rounding

<分区>

我正在使用下面的代码,并试图让我的“输出值”在按下按钮时向上舍入到小数点后两位。

我在网上找到了各种不同的方法,并尝试将它们结合起来,但没有成功。有人能给我指出正确的方向吗?

如果计算结果为 164.98001,那么我希望答案显示为 164.99。

编辑 - 我不认为这是一个重复的问题,因为我的问题与四舍五入所有数字有关。

@IBAction func buttoncalc(_ sender: Any) {
    total.isHidden = false
    let firstValue = Double(text1.text!)
    let secondValue = Double(text2.text!)
    let thirdValue = Double(text3.text!)
    let forthValue = Double(text4.text!)


    if firstValue != nil && secondValue != nil && thirdValue != nil && forthValue != nil {

    let outputvalue = Double(((firstValue! * secondValue!)/1000)*0.5)*(thirdValue! - forthValue!)
    total.text = "£ \(outputvalue)"

    } else {
    total.text = nil
    }
}

最佳答案

您可以使用 NumberFormatter 将格式化后的数字设置为 String。只需将小数位数限制为 2 并将 roundingMode 设置为 up

let formatter = NumberFormatter()
formatter.roundingMode = .up
formatter.minimumFractionDigits = 2
formatter.maximumFractionDigits = 2
let number = 164.98001
print(formatter.string(from: NSNumber(value: number)) ?? "") // 164.99

要进一步改进您的逻辑,您可以设置格式化程序的 numberStylelocale

formatter.numberStyle = .currency
formatter.locale = Locale(identifier: "en_UK")
// £164.99

您的具体用途:

let string = formatter.string(from: NSNumber(value: outputvalue)) ?? ""
total.text = string

关于swift - 如何在 Swift 中四舍五入到小数点后两位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55523226/

相关文章:

javascript - JS Canvas - 以指定 Angular 画线

c# - 如何通过给定的点集合确定形状是半圆?

python - 如何在python中打印十进制值

Python:十进制加法和减法没有给出确切的结果

android - 在 Android 中将小数而不是数字添加到 edittext 时应用程序崩溃

swift - Restkit:外键关系的 stub

ios - 项目中的颜色代码未正确执行

ios - swift 3 : Filtering IOS notifications

ios - 延迟不到一秒,Swift 2

python - 使用 Python 创建一个单位圆计算器?