Swift 如何使用E对双值进行舍入

Swift 如何使用E对双值进行舍入,swift,rounding,Swift,Rounding,我有一个数字,比如4.999999951E+001 我希望我能把这个数字四舍五入为5.000000000 E+001 如何在不干扰指数部分的情况下操作双精度值。所有双精度值都有指数部分。不要被任何打印输出工件所迷惑,尤其是来自调试器输出的工件 Double有round和round方法,您可以这样使用它们 let value = 4.99999999951e+001 let rounded = value.rounded() // or other modes, e.g. .rounded(.to

我有一个数字,比如4.999999951E+001 我希望我能把这个数字四舍五入为5.000000000 E+001
如何在不干扰指数部分的情况下操作双精度值。

所有双精度值都有指数部分。不要被任何打印输出工件所迷惑,尤其是来自调试器输出的工件

Double
round
round
方法,您可以这样使用它们

let value = 4.99999999951e+001
let rounded = value.rounded() // or other modes, e.g. .rounded(.toNearestOrAwayFromZero)

可以使用此扩展名对双值进行舍入

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

let v = 3.56789
v.roundTo(places: 1)
我几乎在每个项目中都使用它。

尝试使用
round()
func

var x = 3.7
x.round()   output is // 4

用你目前掌握的相关代码更新你的问题。这些价值观从何而来?它们将如何使用/展示?