2012-01-03 2 views
1

Это сложный вопрос. Мой друг ищет помощь, и я не вхожу в проект, поэтому сложно описать проблему.PHP: Как отображать десятичные числа в массиве?

У него есть корзина для покупок, написанная на 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 
} 
?> 

ответ

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" 
?> 
+0

большое спасибо;) Мы добавили $ lineprice2 = Sprintf ("% 01.2f", $ lineprice); к нашему коду, и он работал как шарм :) – Forza

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 документация.

Смежные вопросы