package test;import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
import java.math.BigDecimal;
import java.util.Random;public class Testday1 {
public static void main(String[] ages) throws Exception{
text_1();
// System.out.println(uu);
} private static void text_1() {
// TODO Auto-generated method stub
BigDecimal b  = new BigDecimal(0.12345678910111213141516);
System.out.println(b);
double d = 0.12345678910111213141516;
System.out.println(d);
}为什么这段代码执行的结果会是这样的:一直搞不清楚BigDecimal类有什么用。

解决方案 »

  1.   

    BigDecimal类可以对很大很大的数字计算,而且也不会有double 这种浮点数 存储和显示的问题
      

  2.   

    一般的float型和Double型数据只可 以用来做科学计算或者是工程计算,由于在商业计算中,要求的数字精度比较高,所以要用到。java.math.BigDecimal类,它支持任何精度的定 点数,可以用它来精确计算货币值。
    http://jeelee.iteye.com/blog/652003
      

  3.   

    银行这样的计算会用bigdecimal,精确。
    其他类型都有界限值,运算一复杂,数字越大,精确度越低,你可以试试。很多简单的运算它也不精确的
    BigDecimal好像在128以下会使用int型,它可以自动转换自身类型
      

  4.   

    BigDecimal b  = new BigDecimal("0.12345678910111213141516");
      

  5.   

    java.math.BigDecimal类,它支持任何精度的定 点数,可以用它来精确计算货币值。
      

  6.   

    BigDecimal用来精确计算数值,其精度远超过doubel