首页后端开发Pythonfloat在乘法里要取整吗

float在乘法里要取整吗

时间2023-06-07 03:11:01发布访客分类Python浏览244
导读:float在乘法里要取整吗?float在乘法里是要取整数的1.10整数部分就是1,转换成二进制1(这里整数转二进制不再赘述)小数部分:0.10.1*2=0.2取整数部分0,基数=0.20.2*2=0.4取整数部分0,基数=0.40.4*2=...

float在乘法里要取整吗?

float在乘法里是要取整数的

1.10整数部分就是1,转换成二进制1(这里整数转二进制不再赘述)小数部分:0.10.1*2=0.2取整数部分0,基数=0.20.2*2=0.4取整数部分0,基数=0.40.4*2=0.8取整数部分0,基数=0.80.8*2=1.6取整数部分1,基数=1.6-1=0.60.6*2=1.2取整数部分1,基数=1.2-1=0.20.2*2=0.4取整数部分0,基数=0.4...直至基数为0。1.1用二进制表示为:1.000110...xxxx....(后面表示省略)

关于之前的演示,相当于,因为3.4的存储,发生了精度损失(3.5不会,因为3.5的二进制是11.1,补码存储依然不会发生精度损失),所以在相减的时候,发生了一次精度损失,最后结果存储的时候,再次发生一次精度损失。所以,才会出现最后的小尾巴情况。

第二部分:有哪些方法可以解决这个问题呢?

解决这个问题?不存在的,除非是提高精度——让计算机内能够完整的存储数字的二进制(二进制补码)表示,否则的话,只要有精度损失,就指不定什么时候会冒出来小尾巴。我们追求的解决,自然也是从提高精度,和“表面看起来正确”这两条道路去追求。

提高精度——Python本身自带的float已经是可支持浮点数的最高精度形式。当然,这个肯定是不能阻挡我们对更高精度的要求,这里可以自己实现高精度的数据形式,也可以使用Python扩展模块:Decimal。使用Decimal本身需要导入decimal包,初始化decimal数据可以使用整型数据和字符串,而不能使用float型数据,正如之前我们所说的那样,某些浮点数存储会发生精度损失——这意味着float本身就不够精确。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: float在乘法里要取整吗
本文地址: https://pptw.com/jishu/64844.html
python中的turtle库tracer是什么函数 零基础转行学习Python好学吗

游客 回复需填写必要信息