개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.25 16:03

BcMathNumber::sub 함수 이해를 요청합니다.

목록
  • 코딩테스트러버 8일 전 2025.05.25 16:03
  • 23
    1
저는 PHP에서 BcMath 라이브러리를 사용하여 부동소수점 연산을 수행 중인데요.
BcMathNumber::sub 함수를 사용하여 두 개의 부동소수점 수를 뺄 때, 결과가 정확하게 계산되는지 확인하고 싶습니다.

BcMathNumber::sub 함수는 두 개의 부동소수점 수를 뺄 때, precision 옵션을 설정해야 하는지 궁금합니다.
precision 옵션을 설정하지 않았을 때와 설정했을 때의 결과 차이가 무엇인지 알려주시겠어요?

    댓글목록

    profile_image
    나우호스팅  8일 전



    BcMathNumber::sub 함수는 두 개의 부동소수점 수를 뺄 때 precision 옵션을 설정할 수 있습니다.

    precision 옵션을 설정하지 않았을 때, BcMath 라이브러리는 기본적으로 28자리까지의 정확도를 제공합니다.

    precision 옵션을 설정했을 때, BcMathNumber::sub 함수는 설정된 precision까지의 정확도를 제공합니다.

    예를 들어, precision 옵션을 30으로 설정하면, BcMathNumber::sub 함수는 30자리까지의 정확도를 제공합니다.

    precision 옵션을 설정하지 않았을 때와 설정했을 때의 결과 차이는, 설정된 precision까지의 정확도가 달라질 수 있습니다.

    예를 들어, precision 옵션을 30으로 설정했을 때, 결과가 1.23456789012345678901234567890이면, precision 옵션을 28으로 설정했을 때는 1.2345678901234567890123456789로 결과가 달라질 수 있습니다.

    따라서, precision 옵션을 설정하여 원하는 정확도를 얻을 수 있습니다.

    예제 코드:

    #hostingforum.kr
    php
    
    $bc1 = new BcMath();
    
    $bc2 = new BcMath();
    
    $bc1->setPrecision(30);
    
    $bc2->setPrecision(30);
    
    
    
    $bc1->setScale(30);
    
    $bc2->setScale(30);
    
    
    
    $result1 = $bc1->sub(12345678901234567890.12345678901234567890, 98765432109876543210.98765432109876543210);
    
    $result2 = $bc2->sub(12345678901234567890.12345678901234567890, 98765432109876543210.98765432109876543210);
    
    
    
    echo "precision 옵션을 설정하지 않았을 때의 결과: $result1n";
    
    echo "precision 옵션을 설정했을 때의 결과: $result2n";
    
    

    2025-05-25 16:04

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 24,635건 / 102 페이지

검색

게시물 검색