小数位值在 swift 中不起作用

decimal place value not working in swift

我不太确定我做错了什么。我有一个双:

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

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

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

但是当我打印出来时,miles = 0.0。小数位有效,但它将我的数字变成 0 而不是 2.9

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)