2009-10-21 2 views
0

저는 SQL 및 PHP와 관련하여 초보자이며 평균 가격 결과를 반올림하고 현재 나타나는 여분의 0을 제거하려고합니다. 다음과 같이 $ 3.005000SQL 반올림 및 잘라 내기, 철저한 설명이 필요합니다.

내 코드는 현재 읽습니다 :

현재 내 결과로 변합니다 내가 몇 반올림 SQL의 예와 절단하지만를 발견

$result = mysql_query("SELECT AVG(price) FROM milk WHERE price > 0 "); 
$row = mysql_fetch_row ($result); 

불행하게도 내가 본 자습서 나 제공 이 변경 사항을 구현할 위치 또는 방법에 대한 유용한 정보가 없습니다.

이렇게하면 어디에서 변경해야하는지 추측 할 수 있습니다. 아무도 지금까지 (분명히) 효과가 없었습니다.

내 구성에서 이러한 변경을 수행해야하는 부분을 포함하여 결과를 반올림하고 자르는 방법에 대한 예제를 누군가가 제공 할 수 있다면 가장 도움이되며 매우 감사 할 것입니다. 내 문제로 인해 솔루션을 설명하기가 더 어렵다면 정말 유감입니다.

감사합니다.

답변

0

MySQL에는 ROUND() 기능이 있습니다.

그래서 그냥 SQL 쿼리의 평균을 반올림 : 당신이 서식 문제로 끝날 경우

$result = mysql_query("SELECT ROUND(AVG(price),2) FROM milk WHERE price > 0 "); 

, 당신은 출력시 PHP의 number_format() 기능을 사용할 수 있습니다.

+0

대단히 감사합니다! –

2

데이터 서식 지정은 쿼리 자체가 아니라 쿼리를 만드는 스크립트에서 수행해야합니다. 예를 들어, PHP에서 당신은 sprintf를 사용하여 다음 작성할 수 있습니다

$formatted_price = sprintf("%01.2f", $unformatted_price); 

(예 the PHP manual의 보완).

또한 일반적으로 부동 소수점 값이 정확하지 않으므로 가격 값은 부동 소수점 유형이 아닌 decimal 유형 또는 스케일 된 정수로 저장됩니다.

+0

도움을 주신 James에게 감사드립니다. –

+0

+1 절대 금액을 저장하기 위해 부동 소수점 숫자를 사용하지 마십시오. – bobince

관련 문제