swift - 如何快速四舍五入?
问题描述
我正在尝试将此代码的答案四舍五入到小数点后 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.")
解决方案
有很多方法可以做到这一点
如果您希望将值分配给字符串格式的标签
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)
这将返回一个双精度值
推荐阅读
- sql-server - 授予 SQL Server 用户查看 sys.objects 中所有条目的权限
- javascript - 仅水平滚动不起作用
- sql-server - 为什么字段更新会引发绑定集合错误
- infinispan - infinispan 9.4 - 监听器和事件过滤器
- .net - 为什么我在 for 循环中创建的 List(Of String) 在每次迭代时都不为空?
- node.js - Webpack HtmlWebpackPlugin - 在 babel 转换后 'Uncaught ReferenceError: require is not defined'
- r - R - 正则表达式,在第二次或第三次出现后匹配
- excel - 类似战舰的Excel图表用于空间填充演示
- ruby - 如何在红宝石上执行矩阵乘法?
- mysql - 如何求和并获得动态行的平均值