Python 模拟32bit 浮点数运算

Python08

Python 模拟32bit 浮点数运算,第1张

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求和方法如下:

一、整数求和

Python内的整数求和非常简单,就和平时日常中做的数学计算是一样的过程。使用算术运算法把要求和的整数相加即可。

二、列表内的元素进行求和

有时候需要进行求和的数字是存放在一个或者多个列表之中的,那么列表中的元素进行求和方法如下:

(1)单个列表求和

(2)多个列表求和

三、浮点数求和

因为python之中浮点数计算的特性,在涉及到小数点后多位计算时会出现一些很小的偏差。为了弥补这个偏差,就需要使用外部的库来解决。

关于Python概述:

由荷兰数学和计算机科学研究学会的Guido van Rossum于1990年代初设计,作为一门叫做ABC语言的替代品;Python提供了高效的高级数据结构,还能简单有效地面向对象编程;目前Python是一门计算机编程语言。

Python最初是用来编写自动化脚本,随着不断的发展,目前Python被用于大型项目的开发。目前Python是一门计算机编程语言,是直接面向对象动态语言,同时也是一种高级语言。