Java BigDecimal进行精确计算
前言
float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。但是,商业计算往往要求结果精确,这时候BigDecimal就派上大用场啦。
1. BigDecimal的四则运算
package com.homework; import java.math.*; public class BigDecimalExer { public static void main(String[] args) { //定义两个BigDecimal对象 BigDecimal bg1,bg2; bg1=new BigDecimal("0.06"); bg2=new BigDecimal("0.01"); BigDecimal num=null; //加法 num=bg1.add(bg2); System.out.println("和是"+num); //减法 num=bg1.subtract(bg2); System.out.println("差是"+num); //乘法 num=bg1.multiply(bg2); System.out.println("积是"+num); //除法 num=bg1.divide(bg2); System.out.println("商是"+num); }
结果:
2.BigDecimal的比较大小
/*比较大小*/ BigDecimal num1,num2,num3; num1=new BigDecimal("1"); num2=new BigDecimal("2"); num3=new BigDecimal("3"); //用作比较的数 BigDecimal number=new BigDecimal("2"); System.out.println(num1.compareTo(number));//小于时,返回 -1 System.out.println(num2.compareTo(number));//等于时,返回 0 System.out.println(num3.compareTo(number));//大于时,返回 1
结果:
3.利用BigDecimal写for循环
for(BigDecimal i=new BigDecimal("0");i.compareTo(new BigDecimal("10"))!=1;i=i.add(new BigDecimal("1")))
{ System.out.println(i+"\t"); }
结果:输出1~10.