Php 要在浮点后正好显示2位数字吗
我想将中浮点后的8位浮点值转换为浮点后的2位 例如$a=2.200000=>2.20 我正在使用php的round函数。舍入的问题是,若我的数字是2.200000,它会将数字转换为2.2。我希望输出为2.20 有人能提出可能的办法吗 实际代码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
$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,'.','');