2014-09-11 5 views
7

파이썬 (2.4.3) 출력 번호에 특정 형식이 필요합니다. 특히 숫자가 < = 6 자릿수의 종료 소수점 인 경우 모두 표시하십시오. 그러나 유효 숫자가 6보다 큰 경우 6 자리 만 출력됩니다.파이썬 포맷을 일정한 유효 숫자로 플로트시키는 방법은 무엇입니까?

"A"는 파이썬이 어떻게 수레를 쓰는지 보여줍니다. "B"는 그들이 어떻게 쓰여지 길 바라는지를 보여줍니다. 그런 식으로 파이썬 형식의 숫자를 만들려면 어떻게해야합니까?

A: 
10188469102.605597 
5.5657188485 
3.539 
22.1522612479 
0 
15.9638450858 
0.284024 
7.58096703786 
24.3469152383 

B: 
1.01885e+10 
5.56572 
3.539 
22.1523 
0 
15.9638 
0.284024 
7.58097 
24.3469 
+0

플로트는 이것을 가능하게하는 정밀도가 부족합니다. –

+0

_ "Format decimal"_ - ['Decimal'] (https://docs.python.org/2/library/decimal.html)이 파이썬의 라이브러리이기 때문에 "format float"을 의미한다고 생각합니다. –

+0

@BurhanKhalid 네, 맞습니다. – user1145925

답변

17

당신은 하찮은 제로 방울 formatg 수정을 할 것입니다;

>>> "{0:.6g}".format(5.5657188485) 
'5.56572' 
>>> "{0:.6g}".format(3.539) 
'3.539' 

죄송합니다

내 업데이트는 내가 형식() 함수를 가지고 있지 않는 파이썬 2.4.3를 사용하여 제한하고 있다는 사실이 포함되어 있습니다.

형식 지정자 심지어 .format() 기능없이 작동 :

>>> for i in a: 
... print '%.6g' % (i,) 
... 
1.01885e+10 
5.56572 
3.539 
22.1523 
0 
15.9638 
0.284024 
7.58097 
24.3469 
+0

내 질문에 업데이트 됨 예에서도 큰 숫자입니다. – user1145925

+0

@ user1145925 제가 볼 수있는 한,이 형식은 정확한 'B'출력을 제공합니다. –

+0

죄송합니다. 업데이트에는 format() 함수가없는 Python 2.4.3을 사용하도록 제한되어 있다는 사실도 포함되어 있습니다. – user1145925

2

파이썬

for i in a: 
    if i >100: 
     print '%6e'%i 
    else: 
     print '%6f'%i 

출력

012,351,641의 낮은 버전이 방법

a=[10188469102.605597,5.5657188485,3.539,22.1522612479,0,15.9638450858,0.284024,7.58096703786,24.3469152383] 

for i in a: 
    if i >100: 
     print '{:.6e}'.format(i) 
    else: 
     print '{:.6f}'.format(i) 

시도

1.018847e+10 
5.565719 
3.539000 
22.152261 
0.000000 
15.963845 
0.284024 
7.580967 
24.346915 
+0

format() 함수를 사용할 수 없습니다. Python 2.4.3에서는 사용할 수 없습니다. – user1145925