小数位值不能在swift中工作

时间:2017-06-21 03:30:02

标签: ios swift decimalformat

我不确定我在这里做错了什么。我有一个双人:

let distanceInMiles = distanceInMeters/1609.344,结果为2.99685063032388e-09

但我想将数字四舍五入到一位小数,所以我这样做:

let miles = String(format: "%.1f", distanceInMiles)

但是当我打印出里程= 0.0。小数位有效,但它将我的数字变为0而不是2.9

1 个答案:

答案 0 :(得分:2)

2.99685063032388e-09不等于2.9,而是0.00000000299685063032388

http://www.wolframalpha.com/input/?i=2.99685063032388e-09

实际上有一种很酷的方法,使用指数格式说明符而不是浮点数。 (从此列表https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html

let miles = String(format: "%.1e", distanceInMiles)