Php 要在浮点后正好显示2位数字吗

Php 要在浮点后正好显示2位数字吗,php,floating-point,Php,Floating Point,我想将中浮点后的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

我想将中浮点后的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,这正是我想你所要求的:

<?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";

我添加了两个测试用例

尝试下面的代码,您可以得到您的结果

       $a = 2.200000;
       echo number_format((float)$a,2,'.','');

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

@SLAYER:您应该从计算中删除
round()
操作。
.2f
格式完成了所有您想要的功能。@SLAYER:
$price=sprintf(“%.2f”,$opt->price\u value*(1+$this->row->prices[0]->taxes[0]->taxes\u rate))(我对其进行了重构以消除重复项。)
       $a = 2.200000;
       echo number_format((float)$a,2,'.','');