Php 使扣除结果包含2位小数
我正在从数据库导入一个价格。 价格值最初包含两位小数 从每个价格值中,我想扣除相关的运费值,并将结果保留在小数点后2位 代码:Php 使扣除结果包含2位小数,php,number-formatting,Php,Number Formatting,我正在从数据库导入一个价格。 价格值最初包含两位小数 从每个价格值中,我想扣除相关的运费值,并将结果保留在小数点后2位 代码: while($row = $result->fetch_assoc()) { $product_name = $row['Name']; $keys = array_keys($item_array, $product_name); foreach ($keys as $x) $product[$x]["total_pric
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][“价格”]=99.90
我扣除的相关运费是0
,
结果是99.9
,而不是99.90
保留两个小数点的最佳做法是什么?
99.90
是99.9
的格式化输出。要获得恒定的数字格式,必须通过number\u format
以以下方式输出:
echo number_format ( $product[1]["price"], 2 );
参数2
是要打印的小数位数
请注意:此函数的结果是一个字符串,不是数字;该函数用于打印输出,而不是用于数学
在official中,您可以看到如何设置其他参数,如小数点分隔符和千位分隔符。
99.90
是99.9
的格式化输出。要获得恒定的数字格式,必须通过number\u format
以以下方式输出:
echo number_format ( $product[1]["price"], 2 );
参数2
是要打印的小数位数
请注意:此函数的结果是一个字符串,不是数字;该函数用于打印输出,而不是用于数学
在official中,您可以看到如何设置其他参数,例如小数点分隔符和千位分隔符。您可以随时使用这些分隔符设置数字和字符串的格式
在你的情况下,你可以这样做
$product[$x][“基本价格”]=sprintf(%.2f),($row['price']-$row['SHIPHING'])代码>您始终可以使用设置数字和字符串的格式
在你的情况下,你可以这样做
$product[$x][“基本价格”]=sprintf(%.2f),($row['price']-$row['SHIPHING'])代码>但我如何将$product[$x][“base_price”]
预先格式化,以便在我每次回显它时,它都会立即格式化?是的,如果您不使用它进行计算。因此,您可以执行$product[1][“price”]=number\u格式($product[1][“price”],2)
money\u格式或NumberFormatter::formatCurrency可能是better@rjdown你能详细说明一下吗?它们更适合于货币格式。例如,日元没有小数点,所以你不想盲目地添加它们。这些方法还将在正确的位置添加适当的货币符号。加拿大元符号就是一个很好的例子,它会根据您所在的地区(例如en_CA或fr_CA)从左侧变为右侧,但是我如何格式化$product[$x][“base_price”]
以提前格式化,以便在我回送它的每个实例中,它都会立即格式化?是的,如果你不计算的话。因此,您可以执行$product[1][“price”]=number\u格式($product[1][“price”],2)
money\u格式或NumberFormatter::formatCurrency可能是better@rjdown你能详细说明一下吗?它们更适合于货币格式。例如,日元没有小数点,所以你不想盲目地添加它们。这些方法还将在正确的位置添加适当的货币符号。加拿大元符号就是一个很好的例子,它会根据您所在的地区(例如en_CA或fr_CA)从左侧变为右侧。这会自动打印吗?因为在此阶段我不想打印任何内容,只想为数据库中的每一行创建一个新的$product[$x][“base_price”]
变量。请注意,在数据库中,它可能没有0,因为您的数据库引擎可能会忽略它,但在输出中您可以添加此变量line@Gal是印刷品,是的,是印刷品!(请参阅)使用sprintf
返回变量,而不是打印-it@fusion3k你说得对,我编辑了我的答案。很抱歉。@rockyraw这取决于你。这会自动打印吗?因为在此阶段我不想打印任何内容,只想为数据库中的每一行创建一个新的$product[$x][“base_price”]
变量。请注意,在数据库中,它可能没有0,因为您的数据库引擎可能会忽略它,但在输出中您可以添加此变量line@Gal是印刷品,是的,是印刷品!(请参阅)使用sprintf
返回变量,而不是打印-it@fusion3k你说得对,我编辑了我的答案。很抱歉。@rockyraw这取决于你