2

等しい 2 つの float 変数があり、PHP でそれらを取得して減算します。結果は (7.105427357601E-15) と等しくなります double または decimal に変更しようとしましたが、どれも機能しませんでした。これは私がPHPで使用するものです:

$giftcard_balance = $giftcard['balance'];
$total = $product['price'];

$total -= $giftcard_balance;
echo $total;

ここでは、0 を表示する代わりに、(7.105427357601E-15) を表示しています。

誰でも助けてくれますか?

4

3 に答える 3

3

価格と口座残高を扱う場合、DECIMAL(6, 2) は FLOAT よりもはるかに扱いやすいことがわかります。DECIMAL データ型を使用しているときに同じ問題が発生した場合は、具体的な例を投稿してください。

または類似のものを使用round()することは、問題を修正するのではなく、単にマスクするだけであるため、非常に悪い考えです。

于 2012-04-09T13:21:27.407 に答える
1

浮動小数点の不正確さを取り除くために、たとえば、数値の書式設定を使用できます。

$a = 7.105427357601E-15;
$b = number_format($a, 2);
echo $a , "\n", $b , "\n";
于 2012-04-09T12:33:49.363 に答える
0

intval おそらく、php関数を探しているのでしょう。

または多分round 関数

于 2012-04-09T12:32:43.623 に答える