我尝试使用以下值进行计算:
编辑:增值税是按产品
当我尝试获得总数时,我得到15,00(总计)
我所做的是以下内容:
$total = $product + $vat
这将回显15.004
然后我使用number_format:
echo(number_format($total,2,',','.'));
这将打印15.00
但是我想把产品乘以2
这将给出以下计算:
$total = $product * 2 + $vat
然后我再次使用格式:
echo(number_format($total,2,',','.'));
然后总数= 30,01
我尝试了一些像ROUND en INT这样的东西,但没有成功。
我在这做错了什么?知道增值税在这里是邪恶的,但我不知道如何解决这个问题。
答案 0 :(得分:1)
$tax = round( ($price / 100) * 3.8, 2);
税收是四舍五入的价格除以100,以明确百分比。乘以所需的堆栈
然后你在价格表中添加或从你的价格表中添加。
很高兴让你通电话 - 也许我们可以通过电话更快地解决这个问题。感谢上帝的电话!
干杯队友!
答案 1 :(得分:0)
您的初始总数为15.004,因此当您致电number_format
时,将其缩小至15.00。现在当你乘以2时,你的总数为15.008
number_format
将最高为15.01。问题不在于加法乘以2. number_format
轮到最近的位置,对于你的情况是30.01。
如果您希望数字一直向下舍入使用floor
,请执行以下操作:
$total = floor(($product * 200)) / 100 + $vat;
echo(number_format($total,2,',','.'));
答案 2 :(得分:0)
以下是一些使用PHP函数舍入数字的示例。
$product = 12.40;
$vat = 2.644;
$total = ( $product + $vat ) * 2;
var_dump( $total ); // float(30.088)
var_dump( number_format($total,2,',','.') ); // string(5) "30,09", rounded
var_dump( round( $total, 2 ) ); // float(30.09), rounded
var_dump( sprintf('%0.2f', $total ) ); // string(5) "30.09", rounded
var_dump( floor( $total * 100 ) / 100 ); // float(30.08), not rounded
所有三个功能(number_format
,round
,sprintf
)将对结果进行舍入,以避免舍入并丢弃小数部分后两位小数,您可以使用最后一个示例。