Swift で double 値を小数点以下の桁数 x に丸める方法を教えてください。
私は持っている:
var totalWorkTimeInHours = (totalWorkTime/60/60)
totalWorkTime
秒単位の NSTimeInterval (double) です。
totalWorkTimeInHours
時間は表示されますが、時間の長さが 1.543240952039 のような長い正確な数値で表示されます。
印刷するときに、これを 1.543 などに切り捨てるにはどうすればよいでしょうかtotalWorkTimeInHours
?
ベストアンサー1
これを実現するには、 Swift のround
関数を使用できます。
3 桁の精度でa を丸めるにはDouble
、まず 1000 を掛けて丸め、丸めた結果を 1000 で割ります。
let x = 1.23556789
let y = Double(round(1000 * x) / 1000)
print(y) /// 1.236
または のあらゆるソリューションprintf(...)
とは異なりString(format: ...)
、この操作の結果は依然として 型ですDouble
。
時々動作しないというコメントに関しては、こちらをお読みください:すべてのプログラマが浮動小数点演算について知っておくべきこと