0

これをチェックしてくれてありがとう。「PHPforAbsoluteBeginners」の本からPHPを学んでいますが、以下のコードから間違った答えが得られる理由がわかりません。

<?php
$amt1=2.55;
$amt2=3.55;
$total= $amt1 + $amt2;
echo'<br/>The total is $'. $total;
printf('<br/>The total is %.21f', $total);
?>

6.1000ではなく6.099999999999644729を取得します...(20個のゼロを想像してください)Eclipse / XAMP / MAC OSX Lionを使用するコンピューターをそのように置くにはどうすればよいですか?

4

1 に答える 1

1

フロートの精度には制限があります。floatは、すべての数値を表すことはできません(1つ以上2.553.55または6.10正確に表すことはできません)。非常に高い精度または正確な精度が必要な状況では、floatは間違ったデータ型です。ここでの最善の策はおそらくラウンドです。

(テクニカルノートでは、「フロートの精度は限られています」は少し間違っています。より正確なのは、「フロートは一部の数値のみを正確に表すことができます。一部の数値はフロートで正確に表すことができない」です。)

于 2012-07-23T10:20:54.387 に答える