답변:
Python <3 (예 : 2.6 [주석 참조] 또는 2.7)에서는 두 가지 방법이 있습니다.
# Option one
older_method_string = "%.9f" % numvar
# Option two
newer_method_string = "{:.9f}".format(numvar)
그러나 3 이상의 Python 버전 (예 : 3.2 또는 3.3)의 경우 옵션 2가 선호 됩니다.
옵션 2에 대한 자세한 내용 은 Python 설명서의 문자열 형식에 대한 링크를 제안 합니다 .
옵션 1에 대한 자세한 정보는 이 링크로 충분하고 다양한 플래그에 대한 정보를 제공합니다 .
Python 3.6 (공식적으로 2016 년 12 월에 릴리스 됨)은 f
문자열 리터럴을 추가했으며 여기 에서 자세한 정보를 참조하십시오. 이 str.format
방법 을 확장합니다 ( f"{numvar:.9f}"
원래 문제 를 해결하는 중괄호 사용 ).
# Option 3 (versions 3.6 and higher)
newest_method_string = f"{numvar:.9f}"
문제를 해결합니다. 자세한 내용은 @ Or-Duan의 답변을 확인하십시오 . 그러나이 방법은 빠릅니다 .
newer_method_string = "{:.9f}".format(numvar)
데 필요 :
합니다. 어쨌든 2.7.5에서 이것을 테스트했습니다.
newer_method_string = "{0:.9f}".format(numvar)
.이 이전 버전의 field_name에 필수 0이 있습니다.
명확하게하기 위해 f 문자열 형식을 사용할 수 있습니다 . 이것은 format
메소드 와 거의 동일한 구문을 가지고 있지만 조금 더 멋지게 만듭니다.
예:
print(f'{numvar:.9f}')
새로운 f 문자열에 대한 추가 정보 :
다음은 테스트 된 다양한 메소드의 실행 시간 다이어그램입니다 (위의 마지막 링크부터).
str
함수는 버그가 있습니다. 다음을 시도하십시오. '0,196553'이 표시되지만 올바른 출력은 '0,196554'입니다. 때문에 str
함수의 기본값은 ROUND_HALF_UP입니다.
>>> value=0.196553500000
>>> str("%f" % value).replace(".", ",")
.
vs. 은 (는) 무엇인가요 ,
? 그리고 그것은 pauliwago의 질문과 어떻게 관련이 있습니까?