6

我想将浮点后8位的浮点值转换为浮点后的2位..

例如。$a = 2.200000 ==> 2.20

我正在使用 php 的圆形函数。round 的问题是,如果我的号码是 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'

我添加了两个测试用例

于 2012-05-03T05:06:41.237 回答
-1

尝试$val = round($a * 100)/100;

于 2015-03-25T00:11:47.780 回答
-1

试试下面的代码,你可以得到你的结果。

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