2011-03-09 2 views
1

-0.99와 +0.99 사이의 부동 소수점 숫자를 변환하는 빠른 방법은 항상 4자를 차지합니다. 즉, 양수 값 이동 ~에 '0.03'이지만 음의 값은 예 : '-03', 앞에 0이 없습니까? 분명히 나는 ​​Python float to string : '0.03'이나 '-03'을 얻는 방법

s = '%4.2f' % n 
if s[0] == '-': 
    s = '-%s' % s[2:] 

하지만 일부 stackoverflowers 파이썬 바로 가기 알고 아마 일을 할 수 있습니까?

답변

2
s = ('%4.2f' % n).replace('-0','-') 
+0

아 - 물론. 그것은 내 방식보다 낫다. 내 전화 번호가 한 줄에 여러 개 중 하나 인 경우이를 수행 할 방법이 있다고 가정하지 않습니까? 다른 '-0'문자가있을 수 있습니다. '-'로 대체하고 싶지는 않습니다 ... – xnx

+0

나는 당신이하려는 일에 달려 있다고 생각합니다. 당신의 줄이's = "0.3 -0.3 -.9'이면 n에 대해' ''.join (('% 2f'% float (n)). replace ('- 0', '-') s.split())'. 더 나은 대답을주기 위해 더 많은 정보가 필요합니다. – Narcolei

+0

고마워요. 내가 가지고있는 것 같아. 너에게 큰 녹색 진드기! – xnx

5

글쎄, 당신이 할 수 있습니다 :

"{0: 3.2f}".format(n) 

공간은 부호를 양수를 들어, 공간이 인쇄되어야 함을 나타내고, 음수. 이 방법은 항상 동일한 너비를 사용합니다.

+0

감사하지만 숫자는 기존 (이전) 형식의 숫자와 일치하도록 필드에 입력해야하며 앞에 0을 (양수) 또는 '-'(음수)로 입력해야합니다. 소수점 (공백 없음). – xnx