float怎么用在python中_如何在python中存储float

在过去的几天里,我一直在使用python来完成我的作业。我注意到一件奇怪的事-当我把字符串转换成float时,它给出的位数和字符串中的位数完全相同。在

当我用结构包()具有4个字节的浮点,并使用解包结构(),它给出了一个不完全相同的数字,但我希望是根据浮点存储的长度

例如:串-0.931973

浮点数-0.931973

从文件-0.931972980499(在struct打包并解压缩为4个字节之后)

所以我无法理解python以前从字符串中读取我的数字时是如何存储它的。在

编辑

编写float(我认为在ubuntu的python2.7中,d-double和f-float)buf = struct.pack("f", float(self.dataArray[i]))

fout.write(buf)

查询-

^{pr2}$

findNextNode-def findNextNode(self, num):

i = 0

for d in self.dataArray:

if float(num) > float(d):

i = i + 1

continue

else:

break

ptr = self.pointerArray[i]

#open the node before passing on the pointer to it

out, tptr = self.isNodeAlive(ptr)

if out == False:

node = BPlusNode(name = ptr)

node.readBPlusNode(ptr)

return node

else:

return BPlusNode.allNodes[tptr]

一旦我到达叶子,它就会读取叶子并检查数据点是否存在。在for data in node.dataArray:

if data == dataPoint:

return True

return False

因此,在本例中,它返回对datapoint-0.931972980499的搜索失败,尽管存在。在

虽然下面的代码很好-for data in node.dataArray:

if round(float(data), 6) == dataPoint:

return True

return False

我不明白为什么会这样

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值