이것은 내 코드입니다.
print str(float(1/3))+'%'
그리고 그것은 보여줍니다 :
0.0%
그러나 나는 얻고 싶다 33%
어떡해?
답변
format
백분율 부동 소수점 정밀도 유형을 지원합니다 .
>>> print "{0:.0%}".format(1./3)
33%
정수 나누기를 원하지 않으면 다음에서 Python3의 나누기를 가져올 수 있습니다 __future__
.
>>> from __future__ import division
>>> 1 / 3
0.3333333333333333
# The above 33% example would could now be written without the explicit
# float conversion:
>>> print "{0:.0f}%".format(1/3 * 100)
33%
# Or even shorter using the format mini language:
>>> print "{:.0%}".format(1/3)
33%
답변
형식화 방법에보다 편리한 ‘퍼센트’형식화 옵션이 있습니다 .format()
.
>>> '{:.1%}'.format(1/3.0)
'33.3%'
답변
내가이 간단한 접근법을 제안한 사람은 아무도 없었기 때문에 완전성을 위해서만 :
>>> print("%.0f%%" % (100 * 1.0/3))
33%
세부:
%.0f
” 소수점 0으로 플로트 인쇄 ” 를 나타내 므로%.2f
인쇄33.33
%%
리터럴을 인쇄합니다%
. 원본보다 약간 더 깨끗합니다+'%'
1.0
1
디비전이 플로트되도록 강제하는 대신에 더 이상0.0
답변
정수를 나눈 다음 float로 변환합니다. 대신 수레로 나눕니다.
보너스로 여기에 설명 된 멋진 문자열 형식화 방법을 사용하십시오 : http://docs.python.org/library/string.html#format-specification-mini-language
퍼센트 변환 및 정밀도를 지정합니다.
>>> float(1) / float(3)
[Out] 0.33333333333333331
>>> 1.0/3.0
[Out] 0.33333333333333331
>>> '{0:.0%}'.format(1.0/3.0) # use string formatting to specify precision
[Out] '33%'
>>> '{percent:.2%}'.format(percent=1.0/3.0)
[Out] '33.33%'
큰 보석!
답변
Python 3 f-string 솔루션을 추가하기 만하면됩니다.
prob = 1.0/3.0
print(f"{prob:.0%}")
답변
그런 다음 대신이 작업을 수행하려고합니다.
print str(int(1.0/3.0*100))+'%'
는 .0
수레와로를 나타냅니다 int()
나중에 다시 정수로 라운드 그들.