一尘不染

如何在Swift中将小数位截断到x个位置

swift

在我的swift程序中,我有一个非常长的十进制数字(例如17.9384693864596069567),我想将十进制截断到几个小数位(所以我希望输出是17.9384)。我
希望数字四舍五入到17.9385。我怎样才能做到这一点?

感谢帮助!

注意:这不是重复的,因为在使用某些功能之前,它们使用的是swift的非常旧的版本。另外,他们使用浮点数和整数,而我正在谈论双精度数。他们的问题/答案要复杂得多。


阅读 559

收藏
2020-07-07

共1个答案

一尘不染

您可以通过扩展它来整理更多内容 Double

extension Double
{
    func truncate(places : Int)-> Double
    {
        return Double(floor(pow(10.0, Double(places)) * self)/pow(10.0, Double(places)))
    }
}

然后像这样使用

var num = 1.23456789
// return the number truncated to 2 places
print(num.truncate(places: 2))

// return the number truncated to 6 places
print(num.truncate(places: 6))
2020-07-07