본문 바로가기
파이썬

파이썬 후행 0을 포함하여 소수점 이하 n 자리까지 부동 소수점을 인쇄하는 방법은 무엇입니까?

by º기록 2020. 9. 21.
반응형

결과에 후행 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

 

 

반응형

댓글