일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 코딩
- 보안
- 자료구조
- 네트워크보안
- 머신러닝
- 컴퓨터과학
- 프로그래밍
- 버전관리
- 데이터베이스
- 파이썬
- 클라우드컴퓨팅
- 사이버보안
- 컴퓨터공학
- 빅데이터
- 알고리즘
- 컴퓨터비전
- 데이터구조
- 딥러닝
- 인공지능
- 2
- 프로그래밍언어
- 네트워크
- 자바스크립트
- 데이터과학
- I'm Sorry
- 웹개발
- 소프트웨어공학
- 데이터분석
- Yes
- 소프트웨어
- Today
- Total
스택큐힙리스트
소수점 둘째 자리로 실수를 제한함 본문
나는 a 를 13.95로 반올림하길 원한다. round를 사용해봤지만, 다음과 같은 결과를 얻었다:
>>> a
13.949999999999999
>>> round(a, 2)
13.949999999999999
표준 라이브러리 Decimal 클래스와 관련된 유사한 문제에 대해서는 How can I format a decimal to always show 2 decimal places?을(를) 참조하십시오.
답변 1
당신은 부동 소수점 숫자와 함께 old problem에 부딪치고 있습니다. 모든 숫자가 정확하게 표시될 수 없다는 것입니다. 명령 줄은 메모리에서 전체 부동 소수점 형식을 보여줍니다.
부동 소수점 표현에서는 반올림 된 버전이 동일한 숫자입니다. 컴퓨터는 2진수이기 때문에 부동 소수점 수를 정수로 저장한 다음 2의 거듭제곱으로 나눕니다. 따라서 13.95는 125650429603636838/(2**53)과 유사한 방식으로 표현됩니다.
더블 정밀도 숫자는 53 비트 (16 자릿수)의 정밀도를 가지고 일반적인 플로트는 24 비트 (8 자릿수)의 정밀도를 가진다. 값들을 저장하는 방법은 floating point type in Python uses double precision이다.
예를 들어,
>>> 125650429603636838/(2**53)
13.949999999999999
>>> 234042163/(2**24)
13.949999988079071
>>> a = 13.946
>>> print(a)
13.946
>>> print(%.2f % a)
13.95
>>> round(a,2)
13.949999999999999
>>> print(%.2f % round(a, 2))
13.95
>>> print({:.2f}.format(a))
13.95
>>> print({:.2f}.format(round(a, 2)))
13.95
>>> print({:.15f}.format(round(a, 2)))
13.949999999999999
만약 통화 값을 표시하기 위해 두 자릿수 이하만 필요하다면, 더 좋은 선택지가 두 가지 있습니다.
정수를 사용하고 달러가 아니라 센트에 값을 저장한 다음 100으로 나누어 달러로 변환하십시오.
# decimal 와 같은 고정 소수점 수를 사용하세요.
답변 2
제한된 부동 소수점
부동 소수점은 컴퓨터 프로그래밍에서 매우 중요한 용어 중 하나입니다. 하지만, 때로는 이들이 시스템이나 소프트웨어를 망치는 경우도 있습니다. 이는 숫자가 전체 소수점 자리에서 매우 유연하기 때문입니다. 때로는 소수점 이하 또는 이전의 숫자를 제한해야 할 필요가 있습니다.
이러한 경우, 부동 소수점 수를 두 자리 이하로 제한하는 것이 좋습니다. 이렇게 하면 숫자가 짧고 명확해지며 사용자가 빠르게 이해할 수 있습니다. 또한 부동 소수점이 측정 장비의 결과를 나타낼 때 유용합니다.
제한 된 부동 소수점의 실제 사용 사례 중 하나는 금융 시스템에서 발생합니다. 금융 거래 내역을 기록할 때, 소수점 이하의 숫자를 2자리 이하로 제한하면 수표 및 체크 기호 생성과 같은 작업이 더 쉽게 처리됩니다. 또한 각 거래에 대한 총액을 계산할 때 부동 소수점 수의 잘못된 반올림으로 인한 문제를 방지합니다.
또 다른 예는 측정 분야에서 나타납니다. 측정 장비에서 측정 된 결과를 계산할 때 제한된 부동 소수점 사용이 유용합니다. 특히 대형 산업 장비 및 연구 인프라에서 사용됩니다. 이러한 경우, 대규모 데이터 처리에 필요한 시간과 리소스를 줄일 수 있습니다.
이와 같이 제한된 부동 소수점은 어떤 분야 에서든 상황에 따라 유용합니다. 이를 통해 일관된 결과를 보장하고 소수점을 처리하기 쉽게 해줍니다. 또한 부동 소수점의 반올림 문제와 같은 잠재적인 문제를 방지하여 기술적 문제를 방지합니다.
각 분야에서 제한 부동 소수점의 적절한 사용은 매우 중요합니다. 이를 통해 기술적 문제를 방지하고 올바른 결과를 유지하는 데 도움이 됩니다. 더 많은 분야에서 이러한 기술을 사용하려면 제한된 부동 소수점 사용의 장점을 이해하는 것이 중요합니다.