BC — 자동 완전 정밀도 곱셈

BC — 자동 완전 정밀도 곱셈

높음, 임의의 정밀도 계산기를 테스트해야 하며 이는 bc비교를 위한 좋은 표준인 것 같습니다. 그러나 bc각 곱셈의 결과는 관련된 피연산자의 최대 범위로 잘립니다.

이 기능을 끄거나 자동으로 각 곱셈의 스케일을 요소의 스케일 합계로 설정하여 정밀도를 잃지 않도록 하는 빠른 방법이 있습니까?

이 외에 다른 것을 포함하는 더 우아한 솔루션이 있다면 bc공유해 주시면 감사하겠습니다.

예:

$ bc <<< '1.5 * 1.5'
2.2

실제 답은 2.25입니다.

답변1

bc매개변수를 사용하여 출력 크기 조정을 제어할 수 있습니다 scale=<#>.

$ echo "scale=10; 5.1234 * 5.5678" | bc
28.52606652

$ echo "scale=5; 5.1234 * 5.5678" | bc
28.52606

귀하의 예를 사용하여 :

$ bc <<< 'scale=2; 1.5 * 1.5'
2.25

-l스케일을 기본 0 대신 20으로 초기화하는 스위치(@manatwork 덕분에)를 사용할 수도 있습니다 . 예를 들어:

$ bc -l <<< '1.5 * 1.5'
2.25

$ bc -l <<< '1.52 * 1.52'
2.3104

scale다음에 대해 더 자세히 읽을 수 있습니다 .bc매뉴얼 페이지.

답변2

이 시도:

$ bc
scale=10
1.5 * 1.5
2.25

bc's man에서 척도변수 검색

답변3

후행 0을 표시하지 않는 bash 함수를 만들었습니다.

calc () { MAX_PRECISION=20; bc <<< "scale=$MAX_PRECISION; scale = scale($@); $@"; }

예: calc 1.25^3= 1.953125

관련 정보