在我的swift程序中,我有一个非常长的十进制数字(例如17.9384693864596069567),我想将十进制截断到几个小数位(所以我希望输出是17.9384)。我 不 希望数字四舍五入到17.9385。我怎样才能做到这一点?
17.9384693864596069567
17.9384
17.9385
感谢帮助!
注意:这不是重复的,因为在使用某些功能之前,它们使用的是swift的非常旧的版本。另外,他们使用浮点数和整数,而我正在谈论双精度数。他们的问题/答案要复杂得多。
您可以通过扩展它来整理更多内容 Double
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))