python浮点数可以不带小数吗_Python做浮点数(float)运算要小心

本文探讨了计算机中浮点数计算的不精确性问题,指出由于浮点数在二进制表示上的局限,导致计算结果可能出现微小误差。在Python中,这种现象尤为明显。为解决这个问题,建议在比较浮点数时将其四舍五入到一定精度。浮点数处理在科学计算和银行业等关键领域尤为重要,因此理解并正确处理浮点数误差至关重要。
摘要由CSDN通过智能技术生成

balloon-1111368_640.png

这个话题可以起几个标题,比如:为什么 8.5 – 8.4 不等于 0.1;怎么来证明计算机是傻X

我们先来做个计算题:

7.3 – 7.2 = ?

5.1 – 3.4 = ?

8.5 – 8.4 = ?

上面的结果依次应该是: 0.1 1.7 0.1 对不对?

好,我们来看下Python计算出的结果是多少

sub-result.png

有点懵圈!结果跟我们的认知有偏差,输出结果都比真实值小了那么一丢丢。

81111584.jpeg

为什么出现这种结果?

因为这是浮点型(float)数据,计算机对浮点数的表达本身是不精确的。

因为保存在计算机中的是二进制数,二进制对有些数字不能准确表达,只能非常接近这个数。

所以我们在对浮点数做运算 和 比较大小的时候要小心,出现诡异问题,老板到时候又要捶你肉了。

在计算机编程语言中浮点数问题是个普遍问题,不只是Python。

浮点数应该怎么处理呢

把浮点数都同时精确到小数点某个位数来比较,比如同时精确到小数点后2位,后4位这样。

在Pyton中你可以使用rand()这个函数来控制浮点数精确位数,rand()函数是返回某个值四舍五入后的值。

比如上面的例子,我们使用round函数都精确到小数点后2位来看。

python-round.png

结果终于符合我们的预期了。

81111593.jpeg

浮点数在某些行业的运用很多,比如科学运算,比如银行业,使用的时候就要慎重,

银行里小数点比较出错,那可是白花花的银子打了水漂。

disaster.png

yrx_banner_pic.jpg

我的公众号:猿人学 Python 上会分享更多心得体会,敬请关注。

***版权申明:若没有特殊说明,文章皆是猿人学 yuanrenxue.com 原创,没有猿人学授权,请勿以任何形式转载。***

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值