반응형
결과에 후행 0이 많더라도 부동 소수점 숫자를 15 자리 소수점 문자열로 인쇄하거나 변환해야합니다. 예 :
1.6은 1.6000000000000000이됩니다.
round (6.2,15) 시도했지만 반올림 오류를 추가하면 6.2000000000000002가 반환됩니다.
나는 또한 온라인에서 float를 문자열에 넣은 다음 후행 0을 수동으로 추가했지만 나쁜 것 같습니다 ...
이를 수행하는 가장 좋은 방법은 무엇입니까?
해결 방법
>>> print('{0:.16f}'.format(1.6))
1.6000000000000001
>>> print('{0:.15f}'.format(1.6))
1.600000000000000
첫 번째 예의 끝에있는 1
은 반올림 오류입니다. 십진수 1.6의 정확한 표현에는 무한한 이진수가 필요하기 때문에 발생합니다. 부동 소수점 숫자는 유한 한 수의 비트를 갖기 때문에 숫자는 근처에 있지만 같지는 않은 값으로 반올림됩니다.
"모듈로 형식 지정"구문을 사용할 수 있습니다 (이는 Python 2.6 및 2.7에서도 작동 함).
>>> print '%.16f' % 1.6
1.6000000000000001
>>> print '%.15f' % 1.6
1.600000000000000
참조 페이지 https://stackoverflow.com/questions/8568233
반응형
'파이썬' 카테고리의 다른 글
파이썬 SqlAlchemy-관계 특성으로 필터링 (0) | 2020.09.21 |
---|---|
파이썬 PyMongo를 사용하여 MongoDB에서 새 데이터베이스를 생성하려면 어떻게해야합니까? (0) | 2020.09.21 |
파이썬 배열에 요소가 있는지 확인하십시오. (0) | 2020.09.21 |
파이썬에서 matplotlib 플롯을 표시하는 방법 (0) | 2020.09.21 |
파이썬에서 긴 문자열을 선언하는 방법은 무엇입니까? (0) | 2020.09.21 |
댓글