我正在从数据库导入价格。价格值最初包含 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.90
是 99.9
的格式化输出。要获得数字的常量格式,您必须通过以下方式通过number_format
输出它:
echo number_format ( $product[1]["price"], 2 );
参数2
是要打印的小数位数。
请注意:此函数的结果是一个字符串,而不是一个数字;该函数旨在打印输出,而不是用于数学运算。
在官方 PHP 文档中,您可以看到如何设置其他参数,例如小数点的分隔符和千位分隔符。
你总是可以使用sprintf()来格式化数字和字符串。
在您的情况下,您可以做
$product[$x]["base_price"] = sprintf("%.2f",($row['price']-$row['shipping']));