Python 模拟32bit 浮点数运算

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 模拟32bit 浮点数运算相关的知识,希望对你有一定的参考价值。

参考技术A 01

“如将Python中的浮点数运算精度限制到32位?”

为什要提出这么怪异的问题。存在即合理~~

提出这个问题的原因是,在用python模拟32位MCU上的程序时,发现两者的结果有差异。

而差异的地方就是重点。 秉持这种观点,我就想办法深挖下去。排除了其他所有的可能,就差计算精度的影响了。

MCU的浮点运算单元是32位的,而Python默认的浮点运算为64位(安装的64 bit安装包)

浮点运算的结果如下:

32位浮点数的有效数据位为7位,而以上计算结果明显超过7位。

02

差异已经很明显了,那怎么消除着这种差异~~

方案一:

使用round()控制精度。

No,单精度与双精度浮点运算差异不止一个round函数,也不止千八百个~~

方案二:

使用decimal模块

这个还在我的学习计划中~~

方案三:

stackoverflow.com

问题解决~~

03

使用numpy模块中的float32完美解决这个问题。

举个例子~~

End

以上是关于Python 模拟32bit 浮点数运算的主要内容,如果未能解决你的问题,请参考以下文章

Verilog 浮点数运算模块

python中的整数浮点数和布尔值

Python 中的 / 运算符的一切运算结果都是浮点数

python3----运算符

Boost 的多精度模拟低精度快速浮点数

Python中整数和浮点数