2009-06-08 6 views
-5

내 입력은 3.23이다,하지만 난 그것에 플로트를 사용하는 경우는 3.2, 파이썬 형식화하는 플로트 번호

내 입력 내가 그것을 떠 않는 3.00이다

, 그것은하게됩니다 3.0

전 문자열에서 float로 변환, 난 아직도 3.00과 3.0되지 싶습니다 가능합니까? 내가 가능한 코드를 알고 싶습니다. 그리고 2 자리 숫자가 될 때까지 소수점에 문제가있을 때 더 정밀도를 위해 3.23이 3.2보다 낫습니다.

+6

http://stackoverflow.com/questions/964369/quick-python-question는 같은 클래스에 될 일이 있나요) –

+1

? 예. 있을 수있다. 당신의 진짜 질문은 무엇입니까? –

+0

float ('3.23')! = 3.2 여기서 좀 더 정확하게하십시오 :) – NicDumZ

답변

1

원하는 것은 소수를 원하는 수만큼 문자열로 변환하는 것입니다. 당신은 %의 .3f을 (여기에 3 사용하여 인쇄 할 소수의 개수 것을 달성 할 수 예를 들면 다음과 같습니다.

>>> print "Value: %.2f" % 3.0000 

값 : 3.00이 스레드가 단어 처음이기 때문에

1

십진수 정밀도를 사용하려면 python decimal 모듈 :

from decimal import Decimal 
x = Decimal('3.00') 
print x 

그 인쇄 :

Decimal('3.00') 
0

당신이 다음과 같이 출력 포맷 코드를 사용하여 원하는 정밀도 부동 소수점 숫자를 인쇄하려면 :

가정하면 X = 3.125

print "%.1f" % (x) # prints 3.1 
print "%.2f" % (x) # prints 3.12 
print "%.3f" % (x) # prints 3.125 
print "%.4f" % (x) # prints 3.1250 

이 파이썬 2.6에서 작동합니다 (I은 버전 3의 인쇄 기능을 변경할 생각한다).

또한 부동 소수점 숫자는 특정 정확도로만 저장 될 수 있으므로 정확한 숫자는 다시 얻지 못할 수도 있습니다. 예를 들어 0.1은 0.9999999987과 같은 형식으로 저장 될 수 있습니다.

3

"문자열 형식화하는 소수 파이썬 "나는 그것이 더 최근의 답을 제공하기 위해 좋은 생각 :

>>> P=34.3234564 
>>> string="{:.2f}".format(P) 
>>> string 
'34.32'