PHP:用小数计算

时间:2016-08-10 09:06:45

标签: php

我正在创建一个根据特定数量计算食物营养素的应用程序。用户填写他们消耗的食物量,应用程序计算营养价值。

我的源数据包含小数值,例如:100克草莓有6,5个碳水化合物。

当我填写100克草莓(与源数据的克数相同)时,应用程序将输出6而不是6,5。因此,我的计算似乎忽略了逗号背后的所有内容(",")。

我的代码:

$con = mysqli_connect('localhost','root','','food');
if (!$con) {
    die('Could not connect: ' . mysqli_error($con));
}

mysqli_select_db($con, "food");
$sql = "SELECT * FROM products WHERE id = '".$q."'";
$result = mysqli_query($con, $sql);

if ($result->num_rows > 0) {
    while($row = mysqli_fetch_array($result)) {
        $GLOBALS['name'] = $row['product'];
        $GLOBALS['kcal'] = $row['kcal'] / 100 * $GLOBALS['amount'];
        $GLOBALS['protein'] = $row['protein'] / 100 * $GLOBALS['amount'];       
        $GLOBALS['fat'] = $row['fat'] / 100 * $GLOBALS['amount'];       
        $GLOBALS['carbs'] = $row['carbs'] / 100 * $GLOBALS['amount'];
    }
} else {
    echo "Geen gegevens";
}

如果我在等式周围使用number_format,结果仍然是错误的(输出将为6)。

我做错了什么?

Demo

填写前两位输入:

  

草莓(Aardbeien)

     

100

     

点击" Voeg toe"

1 个答案:

答案 0 :(得分:2)

也许,您需要使用str_replace功能吗? 例如:

$GLOBALS['kcal'] = str_replace(',','.',$row['kcal']) / 100 * $GLOBALS['amount'];