Swiftでdouble値を小数点以下の桁数xに丸める 質問する

Swiftでdouble値を小数点以下の桁数xに丸める 質問する

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

時々動作しないというコメントに関しては、こちらをお読みください:すべてのプログラマが浮動小数点演算について知っておくべきこと

おすすめ記事