美文网首页
Python 模拟32bit 浮点数运算

Python 模拟32bit 浮点数运算

作者: Holi2018 | 来源:发表于2018-04-21 15:39 被阅读0次

    周虽旧邦,其命唯新

    01

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

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

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

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

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

    python shell

    浮点运算的结果如下:

    python shell

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

    02

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

    方案一:

    使用round()控制精度。

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

    方案二:

    使用decimal模块

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

    方案三:

    stackoverflow.com

    问题解决~~

    03

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

    numpy.float32

    举个例子~~

    python shell

    End

    相关文章

      网友评论

          本文标题:Python 模拟32bit 浮点数运算

          本文链接:https://www.haomeiwen.com/subject/pajxlftx.html