zoukankan      html  css  js  c++  java
  • 小数运算需要注意什么?

    1. 生活中0.1+0.2=0.3, 计算机中可不是这样,为什么呢?

    大家都知道计算机类型都是有数据范围的。整形int范围是 正负21亿左右,小数类型同样也是有范围的,但是即使0.1~0.2之前如果问你有多少小数? 无穷个!!!

    那么有限的范围怎么表示无限的数据呢? 告诉你表示不了,只能存储一个无限接近的数。

    另外大家都知道计算机所有数据都是二进制,0.5即 2的-1次方,0.25是2的-2次方,同样解释了为什么不能表达所有小数。

    这样大家也就明白下面这个例子 100个0.1相加为什么不等于10了。

    因为计算机是一个无限接近与0.1的数字去表示0.1,所以一个有误差的数去参与计算,参与的越多误差越大

    2.针对上面的情况,那在财务上怎么处理小数位运算呢?

      如果遇到小数,则先扩大为整数,最后结果计算出来以后,再除以扩大的倍数。请看下图

  • 相关阅读:
    COJ 1691:前缀和
    COJ 1692:模拟
    POJ 3415:后缀数组+单调栈优化
    python拓展知识
    git总结
    好的文章及博客收集
    python爬虫总结
    ajax与java后台交互
    Java多线程与并发库
    Django框架创建
  • 原文地址:https://www.cnblogs.com/dual/p/8534694.html
Copyright © 2011-2022 走看看