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

PHP bcmul() 함수 완벽 정리 – 임의 정밀도 숫자 곱셈 방법과 예제

PHP에서 bcmul() 함수는 임의 정밀도(arbitrary precision) 숫자 두 개를 곱하는 데 사용되는 BCMath 수학 함수입니다. 일반적인 산술 연산자는 부동소수점 연산 시 정밀도 손실이 발생할 수 있지만, bcmul() 함수는 숫자를 문자열 형태로 받아 처리하므로 매우 큰 숫자나 높은 정밀도가 필요한 계산에서도 정확한 결과를 얻을 수 있습니다.

문법(Syntax)

string bcmul($num_string1, $num_string2, $scaleVal)

매개변수(Parameters)

bcmul() 함수는 세 개의 매개변수를 받습니다.

  • $num_string1 – 왼쪽 피연산자(left operand)를 나타내며, 문자열(string) 타입입니다.

  • $num_string2 – 오른쪽 피연산자(right operand)를 나타내며, 역시 문자열 타입입니다.

  • $scaleVal – 선택 사항(optional)인 정수(integer) 타입 매개변수로, 결과값의 소수점 이하 자릿수를 지정합니다. 기본값은 0이며, 지정하지 않으면 소수점 이하는 모두 잘립니다.

반환 값(Return Values)

bcmul() 함수는 $num_string1과 $num_string2를 곱한 결과를 문자열(string) 형태로 반환합니다.

예제 1 – $scaleVal 매개변수 없이 bcmul() 사용하기

<?php
    // bcmul() 함수 사용 예제
    // 임의 정밀도를 가진 두 개의 입력 숫자
    $num_string1 = "10.5552";
    $num_string2 = "3";

    // $scaleVal 없이 두 숫자를 곱함
    $result = bcmul($num_string1, $num_string2);

    echo "scaleVal 없는 출력 결과: ", $result;
?>

출력 결과

scaleVal 없는 출력 결과: 31

$scaleVal 매개변수를 지정하지 않으면 기본값인 0이 적용되어 소수점 이하 자릿수가 모두 버려지고 정수 부분만 반환됩니다. 위 예제에서 실제 곱셈 결과는 31.6656이지만, 소수점 이하가 잘려 31만 출력된 것을 확인할 수 있습니다.

예제 2 – $scaleVal 매개변수를 사용하여 bcmul() 호출하기

이번에는 동일한 입력값에 소수점 자릿수를 4로 지정하고 결과를 확인해 보겠습니다.

<?php
    // bcmul() 함수 사용 예제
    // 임의 정밀도를 가진 두 개의 입력 숫자
    $num_string1 = "10.5552";
    $num_string2 = "3";

    // 소수점 자릿수를 4로 설정
    $scaleVal = 4;

    // $scaleVal을 적용하여 두 숫자를 곱함
    $result = bcmul($num_string1, $num_string2, $scaleVal);
    echo "scaleVal 적용 출력 결과: ", $result;
?>

출력 결과

scaleVal 적용 출력 결과: 31.6656

$scaleVal을 4로 지정하면 소수점 넷째 자리까지 정확하게 계산된 결과를 얻을 수 있습니다. 이처럼 bcmul() 함수는 금융 계산처럼 정밀도가 중요한 상황에서 특히 유용합니다.