문제

내 입력은 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과 같은 것으로 저장 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top