Python做浮点数(float)运算要小心 |
您所在的位置:网站首页 › 游戏辅助取名 › Python做浮点数(float)运算要小心 |
这个话题可以起几个标题,比如:为什么 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计算出的结果是多少 有点懵圈!结果跟我们的认知有偏差,输出结果都比真实值小了那么一丢丢。 为什么出现这种结果? 因为这是浮点型(float)数据,计算机对浮点数的表达本身是不精确的。 因为保存在计算机中的是二进制数,二进制对有些数字不能准确表达,只能非常接近这个数。 所以我们在对浮点数做运算 和 比较大小的时候要小心,出现诡异问题,老板到时候又要捶你肉了。 在计算机编程语言中浮点数问题是个普遍问题,不只是Python。 浮点数应该怎么处理呢 把浮点数都同时精确到小数点某个位数来比较,比如同时精确到小数点后2位,后4位这样。 在Pyton中你可以使用rand()这个函数来控制浮点数精确位数,rand()函数是返回某个值四舍五入后的值。 比如上面的例子,我们使用round函数都精确到小数点后2位来看。 结果终于符合我们的预期了。 浮点数在某些行业的运用很多,比如科学运算,比如银行业,使用的时候就要慎重, 银行里小数点比较出错,那可是白花花的银子打了水漂。 ![]() 我的公众号:猿人学 Python 上会分享更多心得体会,敬请关注。 ***版权申明:若没有特殊说明,文章皆是猿人学 yuanrenxue.com 原创,没有猿人学授权,请勿以任何形式转载。*** |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |