我正在从数据库导入价格。 价格值最初包含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
。
保留两位小数点的最佳做法是什么?
答案 0 :(得分:2)
99.90
是99.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']));