PHP:如何在数组中显示十进制数?

时间:2012-01-03 13:37:57

标签: php mysql

这是一个棘手的问题。我的一个朋友寻求帮助,我并没有真正参与这个项目,所以很难描述这个问题。

他有一个用PHP编写的购物车,在那个购物车中,他希望将所有产品价格计入总价。

问题是,所有价格都在MySQL数据库中。显示价格(带小数)不是问题,但是当这些价格被计算并放入变量时,小数不会显示。

我们如何解决这个问题?

我将向您展示他用于在购物车中显示价格的代码:

// Show cart
foreach($cart as $products) {
  // Split
  /*
    $product[x] -->
       x == 0 -> product id
       x == 1 -> hoeveelheid
  */
  $product = explode(",",$products);

  // Get product info

  $sql = "SELECT product_nummer, productnaam, verkoopprijs
         FROM product
         WHERE product_nummer = ".$product[0];  // Komt uit de sessie
  $query = mysql_query($sql) or die (mysql_error()."<br>in file ".__FILE__." on line ".__LINE__);
  $pro_cart = mysql_fetch_object($query);
  $i++;
  $price = $pro_cart->verkoopprijs; // variable price aanmaken zodat er opgeteld wordt

  echo "<tr>\n";
  echo "  <td>"."&nbsp;&nbsp;&bull;&nbsp;".$pro_cart->productnaam."</td>\n";     // naam
  echo "  <td><input type=\"hidden\" name=\"productnummer_".$i."\" value=\"".$product[0]."\" />\n"; // wat onzichtbare vars voor het updaten
  echo "      <input type=\"text\" name=\"hoeveelheid_".$i."\" value=\"".$product[1]."\" size=\"2\" maxlength=\"2\" /></td>\n";
  echo "  <td class=\"rechtsuitlijnen\">"."&#8364;&nbsp;".$pro_cart->verkoopprijs."</td>"."\n";
  $lineprice = $product[1] * $price;      // regelprijs uitrekenen > hoeveelheid * prijs
  echo "  <td class=\"rechtsuitlijnen\">"."&#8364;&nbsp;".$lineprice."</td>\n";
  echo "  <td><a href=\"javascript:removeItem(".$i.")\">X</td>\n"; //Product verwijderen
  echo "</tr>\n";


  // Total
  $total = $total + $lineprice; // Totaal updaten
}
?>

3 个答案:

答案 0 :(得分:2)

要显示格式化的数字,您可以使用PHP sprintf函数(http://php.net/manual/en/function.sprintf.php

<?php
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money will output "123.1";
$formatted = sprintf("%01.2f", $money);
// echo $formatted will output "123.10"
?>

答案 1 :(得分:1)

使用:bcadd()

echo bcadd(10.50, 12.75, 2);

返回23.25

答案 2 :(得分:1)

string number_format ( float $number [, int $decimals = 0 ] )
string number_format ( float $number , int $decimals = 0 , string $dec_point = '.' , string $thousands_sep = ',' )

查看number_format文档。