[공학용 계산기] 화면에는 안보이는 하위 자릿수 확인하기
공학용 계산기는 내부적으로 계산에 사용하는 (유효)숫자와 외부화면상에 보여주는 숫자의 자릿수 차이가 있습니다. 내부적으로 계산에 사용하는 (유효)숫자는 대략 12자리~15자리로 계산기마다 차이가 있습니다. 자릿수가 많을수록 계산 결과가 더 정확해 지지만, 그 댓가로 계산 속도를 잃고 더 많은 메모리가 필요하게 됩니다. 그래서 적당한 수준에서 내부적 유효숫자를 cut 하여 정해놓습니다.
계산기에서 결과 화면상에 보이지 않는 추가적인 자릿수의 숫자를 확인하는 방법을 살펴보겠습니다.
원리는 간단합니다. 안보이는 쪽은 숫자의 오른쪽이므로, 왼쪽을 하나씩 없애면 오른쪽이 하나 보이는 겁니다.
예시)
[CASIO fx-350 ES] 에서 log(1.23) 을 구하면 소숫점11자리까지만 나옵니다.
(자릿수 표시 설정 : Norm1 혹은 Norm2 인 경우)

정수부분이 없으므로, 적당히 10n 을 곱해서 소수부분을 정수로 만들고, 그 정수부분을 없애보겠습니다.

여기서 정수부분을 빼줍니다.

그러면 안보이던 뒷부분(393979)이 드러나게 되는 것이죠.
같은 과정을 한번 더 하더라도 추가 자릿수는 나오지 않습니다.

(이미 계산기 내부의 유효 계산 자릿수를 다 확인하였기 때문입니다)
확인한 값을 연결하여
최종 상용로그값 log(1.23) = 0.089951114393979 (유효숫자 14자리) 값을 구할 수 있게 되었습니다.
주의
여러 단계의 계산인 경우에는 계산 과정중에 발생하는 오차가 확인하려고 하는 유효자릿수보다 클 수 있습니다. 그럴 때는 위의 방법으로 확인한 최종 결과값을 그대로 믿어서는 안됩니다.
따라서 결과값을 검토할 수 있다면 검토해서 사용하시고, 검토할 수 없다면 (틀린 결과일 수 있다는 가능성에) 주의해서 사용하시기 바랍니다. 그것이 중요한 의미를 갖는 계산일 때에는 wolfram alpha 사이트를 이용해서 계산하시는게 좋습니다.
댓글10
-
세상의모든계산기
https://kin.naver.com/qna/detail.naver?d1id=4&dirId=40402&docId=466406476&qb=6rOE7IKw6riw&enc=utf8§ion=kin.qna.all&rank=1&search_sort=3&spq=0
24*1.08^395
= 3.8246760741742144333298134773137547925018381087460557669889902692740302835543440552895098678257447980746108101685223968853... × 10^14
https://www.wolframalpha.com/input?i=24*1.08%5E395
-
-
세상의모든계산기
계산기별 유효 하위 자릿수 확인 방법은? 예상했던 것과 결과가 다른 이유는?

ㄴ fx-991ES PLUS C Emulator
10^1 이면 2자리, 10^11 이면 12자리.
1/10 = 0.1 = 1.0 * 10^(-1) 1자리 아닌가? 이것도 2자리로 들어가나?(100,000,000,000 + 0.1) - 100,000,000,000 = 100,000,000,000.1 - 100,000,000,000 = 0.1
(1,000,000,000,000 + 0.1) - 1,000,000,000,000 = 1,000,000,000,000. - 1,000,000,000,000 = 0
이렇게 됐다는 말인데...
그럼 내부 유효 자릿수가 최대 13이라는 거 아닌가? 14로 알고 있었는데?
부동소숫점 처리가 되면 ×10^(m) 으로 바뀌면서 m(exponent) 도 자리를 차지하게 되는 건가?
-
-
-
세상의모든계산기
EL-W506T PC Emulator

설명서 EL-W506T EL-W516T MODEL EL-W516XG

-
-
세상의모든계산기
fx-570 ES Plus - Norm(1, 2)에서
2,786,774.58 + 152,529,503.4 = 155316277.98 이지만

ㄴ 강제로 소숫점 단위가 반올림되는 이유는?

ㄴ fx-570 ES Plus 설명서 중 발췌
설명서에 나온 것처럼 내부에 저장된 값과 관계없이,
인수가 10자리 수로(?) 반올림되기 때문입니다.
155316277.98 에서 8이 반올림 되는 것인데
그 결과
155316278.0 이 되고 (Norm에서) .0을 표시하지 않는 내부 구조상
155316278 만 남게 되는 것입니다.




세상의모든계산기 님의 최근 댓글
fx-570 CW 는 아래 링크에서 https://allcalc.org/56026 2025 10.24 불러오기 할 때 변수값을 먼저 확인하고 싶을 때는 VARIABLE 버튼 【⇄[x]】목록에서 확인하고 Recall 하시면 되고, 변수값을 이미 알고 있을 때는 바로 【⬆️SHIFT】【4】로 (A)를 바로 입력할 수 있습니다. 2025 10.24 fx-570 CW 로 계산하면? - 최종 확인된 결과 값 = 73.049507058478629343538 (23-digits) - 오차 = 6.632809104889414877 × 10^-19 꽤 정밀하게 나온건 맞는데, 시뮬레이션상의 22-digits 와 오차 수준이 비슷함. 왜 그런지는 모르겠음. - 계산기중 정밀도가 높은 편인 HP Prime CAS모드와 비교해도 월등한 정밀도 값을 가짐. 2025 10.24 HP Prime 에서 <Home> 73.0495070344 (12-decimal-digits) // python 시뮬레이션과 일치 <CAS> 21자리까지 나와서 이상하다 싶었는데, Ans- 에서 자릿수를 더 늘려서 빼보니, 뒷부분 숫자가 아예 바뀌어버림. 버그인가? (전) 73.0495070584718691243 (21-digits ????) (후) 73.0495070584718500814401 (24-digits ????) 찾아보니 버그는 아니고, CAS에서는 십진수가 아니라 2진수(bit) 단위로 처리한다고 함. Giac uses 48 bits mantissa from the 53 bits from IEEE double. The reason is that Giac stores CAS data (gen type) in 64 bits and 5 bits are used for the data type (24 types are available). We therefore loose 5 bits (the 5 low bits are reset to 0 when a double is retrieved from a gen). 출처 : https://www.hpmuseum.org/cgi-bin/archv021.cgi?read=255657 일단 오차를 놓고 보면 16-decimal-digits 수준으로 보임. 2025 10.23 khiCAS 에서 HP 39gII 에 올린 khiCAS는 254! 까지 계산 가능, 255! 부터는 ∞ fx-9750GIII 에 올린 khiCAS는 factorial(533) => 425760136423128437▷ // 정답, 10진수 1224자리 factorial(534) => Object too large 2025 10.23