私はSwiftに 'number prettifier'を書く浮動小数点精度の問題があります。私はこのコードを持っている:Swift 3 double rounding func
func prettifyNumber(number:Int) -> String {
let thousands = Double(number)/1000.0;
var prettyNumber = String(format: "%.1fk", thousands)
return prettyNumber
}
は私の希望の動作は以下のとおりです。
5000 - > "50.3k" - > "5.0k"
9999 - > "9.9k"
99999 - > "99.9k"
等...
私は999999に渡す場合210はしかし、私が取得:
999999からthousands == 999.99900000000002
と> "1000.0k"
私は偽物に正しい答えをいくつかの文字列操作を行うことができます知っているが、私はこれをきちんと実装したいと思います。助言がありますか?
多くの感謝!
- あなたは 'ByteCountFormatter'クラスに興味があるかもしれません。 – rmaddy
BTW - '99999'は' 99.9k'ではありません。それは本当に '100.0k'です。 – rmaddy
これらの数値は、バイト/ kb/mb/gbなどの尺度ではありません。 –