Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP에서 금액을 부동소수점(float)으로 변환하고 반올림하는 방법

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 확장이나 문자열 기반 연산을 함께 고려하는 것도 권장됩니다.