안녕하세요, 제발 좀 도와주세요. float number를 xxxxx.yyyyyyyyyyyyyyy와 같은 형식으로 계산하고 싶습니다. 내가 대신 플로트 내가 많이 노력 의 진수를 사용해야 함을 배웠습니다, 나는 많은 검색하지만, 난 여전히 다음과 같은 간단한 문제가 있습니다 필사적으로 간단한 파이썬 십진수
getcontext().prec = 14
a = Decimal(str('12.737791301'))
b = Decimal(str('12.737791839'))
c = Decimal((b - a)) # substract is what I finally want here
print a, b, c
12.737791301 12.737791839 5.38E-7
내가 C는 0.000000538
로 표시 할을 당신의 도움을 주셔서 감사합니다!
ps. normalize()가 작동하지 않았습니다.
문제를 예를 조회하려면 '%의 .9f' 당신이 얼마나 많은 소수 개까지 알아야 할 것입니다 당신은 인쇄 할 필요가있다. 그리고 예기치 않은 결과를주기 때문에'% .30f'와 같은 형식 문자열에 임의로 긴 값을 넣을 수 없다 ... ''>>> print % .9f % (1e-9)' '... '0.000000001'#이 말이 맞다. ' '>>> 인쇄 % .30f % (1e-9)' '...' 0.000000001000000000000000062282 '# this is not'' 부동 소수점 숫자를 다루는 데는 항상 다른 문제가 있습니다. –
사실입니다. 지수 표기법 (5.38E-7의 예에서는 3)에서 숫자를 세는 추악한 해킹이 있으며이를 지수 -1에 추가합니다. frmt = "% 0." + str (3 + 7 - 1) + "f" 인쇄 frmt % c ...하지만 그러한 kluge. – shelhamer