首页 > 解决方案 > 如何快速四舍五入?

问题描述

我正在尝试将此代码的答案四舍五入到小数点后 2 位。我尝试了很多方法,但没有一个对我有用。请帮忙!

import Foundation

var yen: Double = 10
var krona: Double = 10
var rupee: Double = 10
var totalMoney: Double

var yenRate = 0.0088
var kronaRate = 0.116
var rupeeRate = 0.013


totalMoney = yenRate*yen + kronaRate*krona + rupeeRate*rupeeRate

print("The total of all currencies is equal to \(totalMoney) in USD.")

标签: swiftvariablesmathrounding

解决方案


有很多方法可以做到这一点

  1. 如果您希望将值分配给字符串格式的标签

     var yen: Double = 10
     var krona: Double = 10
     var rupee: Double = 10
     var totalMoney: Double
     var yenRate = 0.0088
     var kronaRate = 0.116
     var rupeeRate = 0.013
    
    
     totalMoney = yenRate*yen + kronaRate*krona + rupeeRate*rupeeRate
    
     let doubleStr = String(format: "%.2f", totalMoney)
    
     print(doubleStr)
    

这里 %.2f 将其四舍五入到小数点后 2 位,它是一个字符串值

2.你已经在你的项目中添加了这个扩展

extension Double {
func round(to places: Int) -> Double {
    let divisor = pow(10.0, Double(places))
    return (self * divisor).rounded() / divisor
  }
}

然后在你的课堂上使用它

totalMoney = yenRate*yen + kronaRate*krona + rupeeRate*rupeeRate
let totlaMoneyInDouble = Double(totlaMoney) 

这将返回一个双精度值


推荐阅读