在Python中将输出格式化为固定精度

时间:2017-07-06 16:53:06

标签: python

我想在昏迷后总是有5个数字。

示例: 我的数据类似于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

3 个答案:

答案 0 :(得分:1)

在最后一行,我想你想做:

print "%5f" % freq

希望这有帮助!

答案 1 :(得分:1)

format内置(和str.format)使用的格式语言与printf运算符使用的%样式格式不完全相同。您应该read the docs了解该语言的详细信息。

针对您的具体情况,我怀疑您需要format(freq, ".5f")。这将始终给出小数点后的五位数。

答案 2 :(得分:-1)

实现你想要的一种粗略的方式:

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

print(n)

给出:

105.56565