zoukankan      html  css  js  c++  java
  • BigDecimal 进行精确的数学运算 ,计算超大的数字(当long都不够用时)

     1 public class Demo01 {
     2 
     3     public static void main(String[] args) {
     4         
     5         BigDecimal bg1=new BigDecimal(1.23);
     6         //建议使用这种,因为参数为double类型时,本身就不能进行精确运算,转换后问题还在
     7         BigDecimal bg2=new BigDecimal("3.54");
     8         BigDecimal bg3=new BigDecimal("1.23");
     9         
    10         //加法
    11         System.out.println("不精确的---->"+bg2.add(bg1));
    12         System.out.println("精确的=====>"+bg2.add(bg3));
    13         //减法
    14         System.out.println(bg2.subtract(bg3));
    15         //乘法
    16         System.out.println(bg2.multiply(bg3));
    17         //除法,当不能整除时一定要有舍入模式  //第一个参数是操作数,第二个是舍入位数,第三个是舍入模式
    18         System.out.println(bg2.divide(bg3,4,BigDecimal.ROUND_HALF_UP));
    19         
    20         //超大数值运算
    21         BigInteger bg4=new BigInteger("8888888888888888888888888888888888");
    22         BigInteger bg5=new BigInteger("8888888888888888888888888888888888");
    23         System.out.println(bg4.add(bg5));
    24         System.out.println(bg4.multiply(bg5));
    25         
    26     }
    27 
    28 }

    控制台输出结果:

    不精确的---->4.769999999999999982236431605997495353221893310546875
    精确的=====>4.77
    2.31
    4.3542
    2.8780
    17777777777777777777777777777777776
    79012345679012345679012345679012329876543209876543209876543209876544

  • 相关阅读:
    onkeyup事件
    asp.net学习视频资料地址链接
    企业站新闻信息的后台功能开发心得(1)
    js实现切换导航
    jquery实现上拉加载更多
    css设置input框没有边框,选中时取消背景色
    使用js修改url地址参数
    ubantu 修改hosts文件
    git的使用
    ubantu 16.04 菜单栏的位置变换
  • 原文地址:https://www.cnblogs.com/sunzhiqiang/p/11730772.html
Copyright © 2011-2022 走看看