python中的float32_Numpy的float32和float比较

import numpy as np

a = 58682.7578125

print(type(a), a)

float_32 = np.float32(a)

print(type(float_32), float_32)

print(float_32 == a)

印刷品:

^{pr2}$

我完全理解比较浮点数的相等性不是一个好主意,但这不应该是错误的(我们讨论的是小数点后第一位的差异,而不是0.00000001)?是否依赖于系统?这种行为有记录吗?在

编辑:这是第三位小数:print(repr(float_32), repr(a))

# 58682.758 58682.7578125

但我能相信repr?这些最终是如何存储在内部的?在

编辑2:人们坚持认为用更精确的方法印刷浮子峎32,会给我它的表现力。不过,正如我已经根据nympy的docs评论的那样:the % formatting operator requires its arguments to be converted to standard python types

以及:print(repr(float(float_32)))

印刷品58682.7578125

@MarkDickinsonhere给出了一个有趣的见解,显然{}应该是忠实的(然后他说它对{}不忠诚)。在

因此,让我重申我的问题如下:在这个例子中,我如何得到float_32和a的精确内部表示法?如果这些都一样,那么问题解决了如果不是

在比较python的float和np.float32时,上下转换的确切规则是什么?我猜它会将float_32转换为float,尽管@WillemVanOnsem建议in the comments这是相反的

我的python版本:Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值