2016-08-10 3 views
0

나는 특정 양을 기준으로 식품의 영양소를 계산하는 앱을 만들고 있습니다. 사용자가 소비 한 음식의 양을 채우면 앱에서 영양가를 계산합니다.PHP : 십진수로 계산

소스 데이터에는 소수점이있는 값이 있습니다. 예 : 딸기 100g에는 6,5 카베가 있습니다.

100g의 딸기 (소스 데이터와 동일한 양)를 채우면 앱에서 6,5 대신 6을 출력합니다. 그래서 내 계산은 쉼표 (",") 뒤에 오는 모든 것을 무시하는 것처럼 보입니다.

내 코드 : 나는 방정식의 주위에 number_format를 사용하는 경우

$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"; 
} 

, 결과는 여전히있을 것입니다 잘못된 (출력은 6 일 것이다).

내가 뭘 잘못하고 있니? 상단 두 개의 입력에

Demo

채우기 :

딸기 (Aardbeien)

100

클릭 "Voeg 발가락"

답변

2

어쩌면, 당신이 필요로하는 재미를 사용하십시오. ction? 예 :

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