我是靠谱客的博主 阔达星星,最近开发中收集的这篇文章主要介绍python中float32_python – Numpy的float32和float比较,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

数字比较相等,因为58682.7578125可以在32位和64位浮点中精确表示.让我们仔细看看二进制表示:

32 bit: 01000111011001010011101011000010

sign : 0

exponent: 10001110

fraction: 11001010011101011000010

64 bit: 0100000011101100101001110101100001000000000000000000000000000000

sign : 0

exponent: 10000001110

fraction: 1100101001110101100001000000000000000000000000000000

它们具有相同的符号,相同的指数和相同的分数 – 64位表示中的额外位用零填充.

无论他们演出哪种方式,他们都会比较平等.如果您尝试使用其他数字,例如58682.7578124,您会看到二进制级别的表示形式不同; 32位失去更高的精度,他们不会比较相等.

(在二进制表示中也很容易看到float32可以向上传播到float64而不会丢失任何信息.这就是numpy在比较两者之前应该做的事情.)

import numpy as np

a = 58682.7578125

f32 = np.float32(a)

f64 = np.float64(a)

u32 = np.array(a, dtype=np.float32).view(dtype=np.uint32)

u64 = np.array(a, dtype=np.float64).view(dtype=np.uint64)

b32 = bin(u32)[2:]

b32 = '

最后

以上就是阔达星星为你收集整理的python中float32_python – Numpy的float32和float比较的全部内容,希望文章能够帮你解决python中float32_python – Numpy的float32和float比较所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部