转换为字符串时,Python的Python精度会丢失

时间:2015-05-20 07:57:10

标签: python scapy

我正在使用Scapy的sniff函数来读取pcap文件中的数据包。

pkt=sniff(offline="a.pcap",count=1)[0]

pkt.time的IDLE中,我能够获得数据包的时间戳,即1431063004.998014。但是当我尝试将时间戳转换为包含str(pkt.time)pkt.time而不是print pkt.time的字符串时,我会1431063005.0,我只会decimal

是否可以将精确的时间戳值作为字符串?

注意:
我查看了git submodule foreach git pull origin master 模块。但这需要精确数字。如果不知道数字的数字,那就无济于事了。

3 个答案:

答案 0 :(得分:4)

repr是另一种类似str的方法,它可以精确地转换整个浮点数。无需导入decimal或任何其他内容。像使用str一样使用它,它只返回一个str对象。

>>> x = repr(pkt.time)
>>> type(x)
>>> <type 'str'>

答案 1 :(得分:2)

试试这个:

"{:.6f}".format(pkt.time) 

答案 2 :(得分:0)

试试这个:

  "{:.6f}".format(pkt.time)