Created on | Updated on

floatの小数点(MEL)

floatの小数点以下の桁には最大精度と範囲があり、誤差が発生する場合があります。 これは使用する環境に依存し、筆者の環境では以下の通りとなります。

 

float $tmp = 0.123456789123456789123456789;
print($tmp);

Result:0.123457

$tmpに代入した値と結果を比較すると、小数点7桁以降は丸められていることがわかります。
0.123456789123456789123456789
↓↓
0.123457

 

ただし実際にはより多くの桁が保持されています。 下記の例では$tmpに「100000000000000」を掛ける事でより多くの桁まで正しく保持していることが確認できます。

float $tmp = 0.123456789123456789123456789;
print($tmp * 100000000000000);
Result:12345678912345.677734

0.123456789123456789123456789
↓↓
  12345678912345.677734

問題が解決しない場合は、Born Digital サポートまでお問い合わせ下さい。

※ 問い合わせ対応はBorn Digitalより製品をご購入頂きましたお客様のみのサービスとなります。ご了承下さい。
サポート問い合わせ