我正在创建一个根据特定数量计算食物营养素的应用程序。用户填写他们消耗的食物量,应用程序计算营养价值。
我的源数据包含小数值,例如: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)。
我做错了什么?
填写前两位输入:
草莓(Aardbeien)
100
点击" Voeg toe"
答案 0 :(得分:2)
也许,您需要使用str_replace
功能吗?
例如:
$GLOBALS['kcal'] = str_replace(',','.',$row['kcal']) / 100 * $GLOBALS['amount'];