6

浮動小数点後8桁の浮動小数点値を浮動小数点後2桁に変換したい..

例えば。$ a = 2.200000 ==> 2.20

phpのラウンド関数を使用しています。ラウンドの問題は、私の数値が2.200000の場合、2.2の数値に変換されることです。2.20として出力したい

誰かが可能な方法を提案できますか?

実際のコード

$price = sprintf ("%.2f", round(($opt->price_value + ($opt->price_value * $this->row->prices[0]->taxes[0]->tax_rate)), 2));

浮動小数点数が2.2000000のように出力したい。その後、2.20が返されるはずです。しかし今、それは私に2.2を返しています

4

3 に答える 3

18

これはあなたが求めていると私が思うことをします:

<?php

$a = 2.20032324;
$f = sprintf ("%.2f", $a);
echo "$a rounded to 2 decimal places is '$f'\n";

$a = 2.2000000;
$f = sprintf ("%.2f", $a);
echo "$a rounded to 2 decimal places is '$f'\n";

結果:

[wally@lenovoR61 ~]$ php t.php
2.20032324 rounded to 2 decimal places is '2.20'
2.2 rounded to 2 decimal places is '2.20'

2つのテストケースを追加しました

于 2012-05-03T05:06:41.237 に答える
-1

以下のコードを試してみてください、あなたはあなたの結果を得ることができます。

       $a = 2.200000;
       echo number_format((float)$a,2,'.','');
于 2014-02-19T06:38:49.663 に答える
-1

試す$val = round($a * 100)/100;

于 2015-03-25T00:11:47.780 に答える