使扣除结果包含 2 位小数


Make deduction result contain 2 decimal places

我正在从数据库导入价格。价格值最初包含 2 位小数。

从每个价格值中,我想扣除相关的运费,并将结果保留小数点后 2 位。

法典:

while($row = $result->fetch_assoc()) {
    $product_name = $row['Name'];
    $keys = array_keys($item_array, $product_name);
    foreach ($keys as $x) 
    $product[$x]["total_price"] = $row['price'];
    $product[$x]["shipping"] = $row['shipping'];
    $product[$x]["base_price"] = ($row['price']-$row['shipping']); // Calculation

目前,我不确定它是如何工作的,但是何时:

$product[1]["price"] = 99.90

而我扣除的相关运费是0,结果是99.9而不是99.90

保留两个小数点的最佳做法是什么?

99.9099.9 的格式化输出。要获得数字的常量格式,您必须通过以下方式通过number_format输出它:

echo number_format ( $product[1]["price"], 2 );

参数2是要打印的小数位数。

请注意:此函数的结果是一个字符串,而不是一个数字;该函数旨在打印输出而不是用于数学运算。

在官方 PHP 文档中,您可以看到如何设置其他参数,例如小数点的分隔符和千位分隔符。

你总是可以使用sprintf()来格式化数字和字符串。

在您的情况下,您可以做

$product[$x]["base_price"] = sprintf("%.2f",($row['price']-$row['shipping']));