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

PHP bcadd() 함수 완벽 가이드 – 두 개의 임의 정밀도 숫자를 정확하게 더하는 방법

PHP에서 bcadd() 수학 함수는 두 개의 임의 정밀도(arbitrary precision) 숫자를 더할 때 사용됩니다. 이 함수는 두 개의 숫자를 문자열 형태로 받아들이며, 결과를 지정된 정밀도(scale)에 맞춰 반올림한 후 그 합계를 반환합니다.

일반적인 산술 연산자나 부동소수점 연산으로는 표현할 수 없는 매우 큰 숫자나 높은 정밀도가 필요한 계산(예: 금융, 과학 연산)에서 bcadd() 함수는 특히 유용합니다.

문법(Syntax)

string bcadd ( $num_str1, $num_str2, $scaleVal)

매개변수(Parameters)

bcadd() 함수는 세 개의 매개변수를 받습니다: $num_str1, $num_str2, 그리고 $scaleVal입니다.

  • $num_str1 – 왼쪽 피연산자(left operand)를 나타내며, 문자열 타입의 매개변수입니다.

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

  • $scaleVal – 선택적(optional) 매개변수로, 결과값에서 소수점 이하 자릿수를 지정하는 데 사용됩니다. 기본값은 0이며, 지정하지 않으면 소수점 이하는 잘립니다.

반환값(Return Values)

bcadd() 함수는 두 피연산자 $num_str1$num_str2의 합을 문자열(string) 형태로 반환합니다.

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

<?php
    // bcadd() 함수 사용 예제 PHP 프로그램
    // 임의 정밀도를 가진 두 개의 입력 숫자
    $num_string1 = "5";
    $num_string2 = "10.555";

    // $scaleVal 없이 두 숫자의 덧셈을 계산
    $result = bcadd($num_string1, $num_string2);
    echo "scaleVal 없이 출력한 결과: ", $result;
?>

출력 결과

scaleVal 없이 출력한 결과: 15

설명 – 위 PHP 예제에서는 $num_string1$num_string2라는 두 개의 매개변수만 사용하여 bcadd() 함수로 두 숫자의 덧셈을 계산했습니다. $scaleVal 매개변수를 지정하지 않았기 때문에 결과값이 15로 출력되며, 소수점 이하 자릿수(.555)는 모두 제거됩니다.

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

이번에는 동일한 입력값에 $scaleVal 매개변수를 추가하여 출력 결과가 어떻게 달라지는지 확인해 보겠습니다.

<?php
    // bcadd() 함수 사용 예제 PHP 프로그램
    // 임의 정밀도를 가진 두 개의 입력 숫자
    $num_string1 = "5";
    $num_string2 = "10.555";

    // scale 값을 2로 지정
    $scaleVal = 2;

    // $scaleVal 매개변수를 포함하여 두 숫자의 덧셈을 계산
    $result = bcadd($num_string1, $num_string2, $scaleVal);
    echo "scaleVal 적용 후 출력 결과: ", $result;
?>

출력 결과

scaleVal 적용 후 출력 결과: 15.55

설명 – 이번에는 $scaleVal2로 설정했기 때문에, 결과값이 소수점 둘째 자리까지 유지되어 15.55로 출력됩니다. 즉, 세 번째 소수 자릿수인 5는 반올림 처리되어 버려집니다. 이처럼 bcadd() 함수에서 $scaleVal을 활용하면 원하는 정밀도 수준으로 덧셈 결과를 정확하게 제어할 수 있습니다.