扣除结果包含2位小数

时间:2016-01-30 22:18:48

标签: php number-formatting

我正在从数据库导入价格。 价格值最初包含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

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

2 个答案:

答案 0 :(得分:2)

99.9099.9的格式化输出。要获得恒定的数字格式,您必须以这种方式通过number_format输出它:

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

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

请注意:此功能的结果是字符串,不是数字;该函数用于打印输出,而不是数学。

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

答案 1 :(得分:1)

您始终可以使用sprintf()格式化数字&字符串。

在你的情况下,你可以做

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