문제
내 입력은 3.23이지만 float를 사용하면 3.2가됩니다.
입력이 3.00 인 경우 플로트를 할 때 3.0이됩니다.
문자열에서 float로 변환 할 때 여전히 3.00이 아닌 3.0이되지 않기를 원합니까? 나는 그것을 가능하게하기 위해 코드를 알고 싶고, 2 자리 숫자가 될 때까지 10 진수 지점이 3.23보다 3.2보다 낫다.
해결책
나는 당신이 원하는 것이 당신이 원하는 소수의 수를 가진 문자열로 플로트를 변환하는 것이라고 생각합니다. %.3f를 사용하여이를 달성 할 수 있습니다 (여기서 3은 인쇄하려는 소수점 수입니다.
>>> print "Value: %.2f" % 3.0000
가치 : 3.00
다른 팁
이 스레드는 "문자열이 십진파 파이썬을 형성하는 문자열"이라는 단어에서 가장 먼저 있기 때문에 최근의 대답을 제공하는 것이 좋습니다.
>>> P=34.3234564
>>> string="{:.2f}".format(P)
>>> string
'34.32'
소수 정밀도를 원한다면 파이썬을 사용하십시오 decimal
기준 치수:
from decimal import Decimal
x = Decimal('3.00')
print x
그 인쇄 :
Decimal('3.00')
부동 소수점 번호를 원하는 정밀도로 인쇄하려면 다음과 같은 출력 서식 코드를 사용할 수 있습니다.
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
이것은 Python 2.6에서 작동합니다 (버전 3에서 인쇄 기능을 변경했다고 생각합니다).
또한 부동 소수점 숫자는 특정 정확도로 만 저장할 수 있으므로 때로는 동일한 숫자를 다시 얻지 못할 수도 있습니다. 예를 들어 0.1은 0.999999987과 같은 것으로 저장 될 수 있습니다.
제휴하지 않습니다 StackOverflow