找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 1633|回复: 2

[求助] 31*1.45没有得到精确解

1

主题

1

帖子

1

积分

贫民

积分
1
qianlicao 发表于 2019-10-26 20:32:52 | 显示全部楼层 |阅读模式
为何31*1.45得到的是44.949999999999996,而不是44.95的精确解呢?
哪位大神解答下,多谢了!


222.PNG
回复

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
liuxingzhu 发表于 2019-11-14 10:36:35 | 显示全部楼层
十进制小数转为二进制小数,计算机只认0/1,会产生符合精度要求的小数。小数在计算机里存储方法为:乘2取整,顺序排列,即 0.2*2 = 0.4, 0.4*2 = 0.8, 0.8*2 = 1.6, 0.6*2 = 1.2, 0.2 *2  = 0.4分别为0,0,1,1,0即0.00110....用decimal模块固定精度。
回复 支持 反对

使用道具 举报

0

主题

16

帖子

16

积分

贫民

积分
16
edo 发表于 2019-11-21 18:22:59 | 显示全部楼层
>>> from decimal import *
>>> Decimal('31') * Decimal('1.45')
Decimal('44.95')
>>>
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表