
BC Math 라이브러리에서 BcMathNumber 클래스의 __toString() 메서드는 결과를 문자열로 변환할 때, 소수점 이하의 자릿수를 제한하지 않습니다. 따라서 10.5를 2로 나눈 결과인 5.25는 5.25.0이 아닌 5.25로 나타납니다.
이러한 문제가 발생하는 이유는 BC Math 라이브러리에서 소수점 이하의 자릿수를 자동으로 반올림하는 방식으로 결과를 반환하기 때문입니다.
__toString() 메서드를 사용하는 방법은 다음과 같습니다.
#hostingforum.kr
php
$bcNum = new BcMathNumber('10.5');
$result = $bcNum->div(2);
echo $result->__toString(); // 5.25
만약 소수점 이하의 자릿수를 제한하고 싶다면, BC Math 라이브러리에서 제공하는 round() 함수를 사용할 수 있습니다.
#hostingforum.kr
php
$bcNum = new BcMathNumber('10.5');
$result = $bcNum->div(2);
echo round($result, 2); // 5.25
또는, BC Math 라이브러리에서 제공하는 format() 함수를 사용할 수 있습니다.
#hostingforum.kr
php
$bcNum = new BcMathNumber('10.5');
$result = $bcNum->div(2);
echo $result->format('%.2f'); // 5.25
2025-05-08 14:35