通貨レート変換機能のバグを修正

LINEで送る
Pocket

オンライン文章校正支援サービス「PRUV」の通貨レート変換機能のバグを修正しました。

1兆以上の桁を正しく処理できておらず、「1兆ドル」と入力したときの日本円を「1104800億円」のように表示していました。

今回の修正で、正しく「110兆4800億円」と表示するようになりました。

通貨レート変換時は、金額を数値に変換して計算し、改めて漢字交じりの文字列に戻しています。1兆ドル(1000000000000)に通貨レートを掛けて110480000000000にし、この桁数を調べて億や兆といった漢字に置き換えるわけです。このときPHPが数値を自動的に科学記法(指数表現)「1.1048E+14」にしてしまうため、単純に桁数をカウントすると15桁(文字)ではなく10文字になってしまい、「兆」を入れる処理がパスされてしまいました。

科学記法を数値に戻す処理を加えたことにより、無事解決しました。Appleが1兆ドル企業にならなければ(結構前の話ですが……)、このバグに気付かなかったことでしょう。