百亿计算器的设计,见笑了~~~~~~~

来源:互联网 发布:数据合并计算怎么做 编辑:程序博客网 时间:2024/05/03 12:53



进行大数操作,一般就是使用BigDecimal和BigInteger,下面附上官方文档说明首先要使用java.math下的两个类.


     整形大数的加减乘除

import java.math.BigInteger;public class dashu {public static void main (String args[]){      String num="10000000000000000000000000000000000000000000";      String num2="999999999999999999999999999999999999999999";      BigInteger bigdashu1=new BigInteger(num);//实例化BigInteger对象      BigInteger bigdashu2=new BigInteger(num2);            System.out.println("加法操作"+bigdashu1.add(bigdashu2));      System.out.println("减法操作"+bigdashu1.subtract(bigdashu2));      System.out.println("乘法操作"+bigdashu1.multiply(bigdashu2));      System.out.println("除法操作"+bigdashu1.divide(bigdashu2));            BigInteger dashu[]=bigdashu1.divideAndRemainder(bigdashu2);//余数      System.out.println("相除之后的商是"+dashu[0]);      System.out.println("相除之后的余数是"+dashu[1]);}   }
加法操作10999999999999999999999999999999999999999999减法操作9000000000000000000000000000000000000000001乘法操作9999999999999999999999999999999999999999990000000000000000000000000000000000000000000除法操作10相除之后的商是10相除之后的余数是10

在进行除法操作的时候,会有余数的存在,这个时候要使用divdeAndRemainder(),这个方法返回一个数组.


   下面进行浮点型大数操作:

import java.math.BigDecimal;import java.math.BigInteger;class math{ public static double add(String num1,String num2){ BigDecimal dashu1=new BigDecimal(num1); BigDecimal dashu2=new BigDecimal(num2); return dashu1.add(dashu2).doubleValue(); } public static double subtract(String num1,String num2){ BigDecimal dashu1=new BigDecimal(num1); BigDecimal dashu2=new BigDecimal(num2); return dashu1.subtract(dashu2).doubleValue(); } public static double multiply(String num1,String num2){ BigDecimal dashu1=new BigDecimal(num1); BigDecimal dashu2=new BigDecimal(num2); return dashu1.multiply(dashu2).doubleValue(); } public static double divide(String num1,String num2,int scale){ BigDecimal dashu1=new BigDecimal(num1); BigDecimal dashu2=new BigDecimal(num2); return dashu1.divide(dashu2,2,BigDecimal.ROUND_UP).doubleValue(); } public static double round(double num,int scale){//进行四舍五入操作 BigDecimal dashu1=new BigDecimal(num); BigDecimal dashu2=new BigDecimal(1);//全都除以1 return dashu1.divide(dashu2,2,BigDecimal.ROUND_UP).doubleValue(); }};public class fudiandashu {public static void main (String args[]){      String num1="1546788.965";      String num2="9.953";      System.out.println("加法操作"+math.round(math.add(num1, num2),2));      System.out.println("减法操作"+math.round(math.subtract(num1, num2),2));      System.out.println("乘法操作"+math.round(math.multiply(num1, num2),2));      System.out.println("除法操作"+math.divide(num1,num2,2));}   }

加法操作1546798.92减法操作1546779.02乘法操作1.539519057E7除法操作155409.33

碰到大数的操作基本就是这样,下面附上divide()方法的文档说明


原创粉丝点击