PHP에서 금액을 반올림하려면 round() 함수를 사용하면 됩니다. 이 함수는 지정한 소수점 자릿수까지 값을 반올림해 주며, 이후 (float) 캐스팅을 통해 결과를 부동소수점 숫자로 변환할 수 있습니다.
기본 사용법
먼저 다음과 같은 입력값이 있다고 가정해 보겠습니다.
$amount=50.78; $quantity=45.5;
이 값들을 round()로 반올림한 뒤 float 타입으로 변환하려면 아래와 같이 작성합니다.
$am=(float) round($amount, 4); $quant=(float) round($quantity, 4);
여기서 round($amount, 4)는 소수점 넷째 자리까지 반올림하라는 의미입니다. 필요에 따라 자릿수를 조절할 수 있습니다.
전체 예제 코드
실제 동작을 확인할 수 있는 완전한 PHP 코드는 다음과 같습니다.
<!DOCTYPE html> <html> <body> <?php $amount=50.78; $quantity=45.5; $am=(float) round($amount, 4); echo $am,"<br>"; $quant=(float) round($quantity, 4); echo $quant,"<br>"; $correctAmount=round($am*$quant,4); echo "The result is=",$correctAmount; ?> </body> </html>
실행 결과
위 코드를 실행하면 다음과 같은 출력이 생성됩니다.
50.78 45.5 The result is=2310.49
핵심 포인트 정리
round() 함수: 첫 번째 인수는 반올림할 숫자, 두 번째 인수는 유지할 소수점 자릿수입니다. 두 번째 인수를 생략하면 기본값인 0(정수)으로 반올림됩니다.
(float) 캐스팅: round()의 반환값을 명시적으로 부동소수점 타입으로 변환하여, 이후 계산에서 타입 불일치 문제가 발생하지 않도록 합니다.
곱셈 후 재반올림: 두 개의 float 값을 곱하면 소수점 오차가 발생할 수 있으므로, 최종 결과에 한 번 더 round()를 적용해 정확한 금액을 얻는 것이 좋습니다. 실무에서는 금융 계산 시 부동소수점 정밀도 문제를 피하기 위해 bcmath 확장이나 문자열 기반 연산을 함께 고려하는 것도 권장됩니다.