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 浮点数运算的主要内容,如果未能解决你的问题,请参考以下文章