数値を文字列に整形する際の落とし穴とその解決策 by glassfiber

iOSDC Japan 2024
採択
2024/08/23 17:45〜
Track A
ルーキーズLT(5分)

数値を文字列に整形する際の落とし穴とその解決策

glassfiber

このセッションでは、数値を文字列に整形する際に陥りやすい落とし穴について、具体例を交えて紹介します。

例えば、以下のような関数でパーセンテージの文字列を得ようとする場合を考えます。

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を用いた解決策を紹介し、どのように実装するかを具体的に示します。

このトークを通じて、皆様が同じような問題に直面した際の参考になれば幸いです。