2017-07-06 7 views
1

私は昏睡状態の後に常に5つの数字を付けたいと思います。Pythonで出力を固定精度でフォーマットする

例: 私のデータは105.56565 105 165.54のようなものです......

私はこのように同じ長さとします105.56565 105.00000 165.54000を....

スクリプト:

from pylab import* 
from rtlsdr import* 
from bluetooth import* 
import sys 

#configure device 
sdr= RtlSdr() 
sdr.sample_rate=double(sys.argv[3]) 
sdr.gain=double(sys.argv[2]) 
sdr.center_freq=double(sys.argv[1]) 

#Bluetooth connection 

server_sock=BluetoothSocket(RFCOMM) 
server_sock.bind(("",PORT_ANY)) 
server_sock.listen(1) 

port=server_sock.getsockname()[1] 
uuid="94f39d29-7d6d-437d-973b-fba39e49d4ee" 
client_sock,client_info=server_sock.accept() 

while(1): 
     samples=sdr.read_samples(256*1024) 
     result=psd(samples,NFFT=1024, Fs=sdr.sample_rate/1e6, Fc=sdr.center_freq*1e6/1e6) 
     freq=result[1]/1e6 
     value_freq=str(freq)[1:-1] 
     print format(freq, '%5f') // he do not work 
その最後の行に

答えて

1

、私はあなたがやりたいと思う:

print "%5f" % freq 

お役に立てれば!

-1

あなたが望むものを達成するために、多少の粗方法は:

n = 105.5656534567 
n = float(str(n)[0:9]) 

print(n) 

を与える:

105.56565 
+0

これは数値を切り捨て、必要な小数点以下の桁数に丸めません。 'n = 105.5656599999' – ktdrv

1

format組み込み(およびstr.format)で使用される形式言語はprintfと全く同じではありませんオペレータによって使用されるスタイルの書式設定。言語の詳細については、read the docsを参照してください。

具体的には、format(freq, ".5f")が必要と思われます。これにより、小数点以下5桁が常に表示されます。

+0

で試してみてください:' tab_freq =(result []/1e6)tab_freq_convert = str(tab_freq)[1:-1] value_freq = format(tab_freq_convert、 ".5f") '常に同じエラーが発生します: '' str'のオブジェクトのフォーマットコード 'f'を知らない – azzerty2017

関連する問題