关于浮点数计算和精度丢失问题

关于浮点数计算和精度丢失问题

浮点数数学计算产生精度丢失,如何在展示时隐藏丢失

这个问题在第一周和第二周都没看到相关课程,后面的课程有提到相关问题吗?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好!浮点数在计算时丢失的精度,无法显示的。同学可以用Decimal模块来计算浮点数,这样更加精确。Decimal类型可以非常精确地在计算机中存储,浮点型在计算机中是无法精确存储的,后面的小数会不精确,Decimal类型则不会出现这种情况。参考代码如下

from decimal import Decimal
result=Decimal("3.01")+Decimal("3.02") #Decimal()的参数必须是字符串型
print(result)

2、后边没有相关问题讲解

祝学习愉快~

  • Mr朱_ 提问者 #1

    Decimal是可以更加精确地计算浮点数,但是它只是减小了误差,实际误差还在,类似“0.2+0.2!=0.4”的情况还是无法避免。

    项目中都是允许精度丢失导致的误差,给用户展示为“0.2+0.2=0.4”即可。这种效果是用什么方式处理的?python后端,js,还是sql??

    2023-04-03 21:42:08
  • Mr朱_ 提问者 #2

    用格式输出不可行,因为给用户展示的是数学计算结果,不是精确到小数点后几位的情况

    例如:在excel中用户进行数学计算时感知不出精度丢失,浮点数也没有固定展示到小数点后几位

    2023-04-03 21:46:21
  • 好帮手慕小猿 回复 提问者 Mr朱_ #3

    同学,你好!可以尝试浮点数运算后乘以一个极大整数再除以这个极大整数

    https://img1.sycdn.imooc.com//climg/642b84980972ba9402560134.jpg

    祝学习愉快~

    2023-04-04 10:01:33
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师