从float32>float64返回float32是否会丢失精度?

2024-05-16 17:50:28 发布

您现在位置:Python中文网/ 问答频道 /正文

从numpyfloat32到python float64再到numpyfloat32,是否可能丢失任何保真度或精度?在

我似乎找不到数据丢失的案例,但我周围的人都声称,世界将因数据丢失而毁灭。在继续之前,我只需要找到一个证明数据丢失的文档/示例。在

如果你能帮我指出正确的方向,我将不胜感激。在

下面是我看到的一个典型用例:

def serialize(val):
    # val is a np.float32
    return val.astype(float)


def deserialize(msg):
    return np.float32(msg)

message = '1.23456789'
outgoing = serialize(message)
incoming = deserialize(message)

Tags: 数据messagereturndefnp精度msgval
1条回答
网友
1楼 · 发布于 2024-05-16 17:50:28

如果x是float32,那么float32(float64(x)) == x。在

唯一的例外是如果x = nan,那么nan != nan,尽管nan is nan,因此如果你想捕捉所有你可以使用的东西:

float32(float64(x)) == x or x is nan

一。在

你应该注意:

^{pr2}$

相关问题 更多 >