1. ホーム
  2. swift

[解決済み] 2倍値を小数点以下x桁に丸める処理を素早く行う。

2022-03-19 11:40:18

質問

Swiftでdouble値を小数点以下X桁に丸める方法をどなたか教えていただけませんか?

持っています。

var totalWorkTimeInHours = (totalWorkTime/60/60)

totalWorkTime は秒単位のNSTimeInterval(double)である。

totalWorkTimeInHours は時間単位で表示されますが、1.543240952039のような長い正確な数値で表示されます。

これを、例えば1.543に切り捨てて印刷するにはどうすればよいのでしょうか。 totalWorkTimeInHours ?

解決方法は?

Swiftの round 関数で実現できます。

を丸めるには Double 3桁の精度で計算する場合は、まず1000倍して丸め、丸めた結果を1000で割ります。

let x = 1.23556789
let y = Double(round(1000 * x) / 1000)
print(y) /// 1.236

とは異なり printf(...) または String(format: ...) ソリューションの場合、この操作の結果はまだタイプ Double .

EDITです。
動作しないことがあるというコメントについてですが、こちらをお読みください。 浮動小数点演算についてプログラマが知っておくべきこと