1 /* 2 浮点数在Java中是以二进制表示的,这样的话就有不少数不能准确表示 3 有的表示的是一个近似的数 4 例如floa型的0.1,用二进制表示是001111011 10011001100110011001101 5 化为十进制是0.100000001490116119384765625 6 所以在一些精密的计算中不能用浮点型直接相加 7 须要借用BigDecimal类 8 */
浮点数直接相加:ide
1 public class BigDecimal1 { 2 public static void main(String[] args) { 3 System.out.println(0.01+0.09); 4 } 5 6 } 7 8 0.09999999999999999
BigDecimal类的成员方法的使用:spa
1 public class BigDecimal1 { 2 public static void main(String[] args) { 3 //建立BigDecimal 4 BigDecimal bd1=new BigDecimal("0.01"); 5 BigDecimal bd2=new BigDecimal("0.09"); 6 System.out.println("相加的结果为:"+bd1.add(bd2)); 7 System.out.println("相减的结果为:"+bd1.subtract(bd2)); 8 System.out.println("相乘的结果为:"+bd1.multiply(bd2)); 9 System.out.println("相除的结果为:"+bd2.divide(bd1)); 10 System.out.println("保留5位小数后相除的结果为:"+bd1.divide(bd2,5, BigDecimal.ROUND_HALF_UP)); 11 } 12 13 } 14 15 16 相加的结果为:0.10 17 相减的结果为:-0.08 18 相乘的结果为:0.0009 19 相除的结果为:9 20 保留位数后相除的结果为:0.11111