このセッションでは、数値を文字列に整形する際に陥りやすい落とし穴について、具体例を交えて紹介します。
例えば、以下のような関数でパーセンテージの文字列を得ようとする場合を考えます。
func percentStr(_ rate: Double) -> String {
let value = floor(rate 1000) / 1000
let percentValue = value 100
return "(percentValue)%"
}
これを print(percentStr(0.523)) として実行すると、どのような出力が得られるでしょうか?
実際の出力は 52.300000000000004% となります。予想できましたか?
このセッションでは、数値を文字列に整形する際に私が陥った落とし穴について解説します。
具体的な内容は以下の通りです。
1.浮動小数点数の精度問題:
なぜ浮動小数点数がこのような誤差を生じるのか、その理由と背景について説明します。
2.NumberFormatterの活用:
NumberFormatterを用いた解決策を紹介し、どのように実装するかを具体的に示します。
このトークを通じて、皆様が同じような問題に直面した際の参考になれば幸いです。