不要只说decimal 是10进制类型.
因为decimal 是128 bits, 而 double 是64 bits,但是double 数据范围为什么要大些呢?

解决方案 »

  1.   

    因为decimal精度高,double是使用指数方式存放的。decimal对小数后的指定位数都能准确如实反映,但double是舍弃精度的。换一句来说,你给double赋一个值,再从里面读回来就会存在误差。你可以试一试,从0.01到10000,赋给一个double,再从double转回给字符串,看有多少个是不一致的。
      

  2.   

    这是存放格式和语言规定决定的。
    Decimal类型接受最多28位有效数字。当小数位为0时,他它支持很大的正数或负数,至多可以有27位。另外,可以在Decimal类型中存储非常准确的数字,在小数点后可以有27位小数。
    double存放格式是包括符号位、幂数、系数组成。
    经比较double可提供更大的数值范围。
      

  3.   

    这是存放格式和语言规定决定的。
    Decimal类型接受最多28位有效数字。当小数位为0时,他它支持很大的正数或负数,至多可以有27位。另外,可以在Decimal类型中存储非常准确的数字,在小数点后可以有27位小数。
    double存放格式是包括符号位、幂数、系数组成。
    经比较double可提供更大的数值范围。这是存放格式和语言规定决定的。
    Decimal类型接受最多28位有效数字。当小数位为0时,他它支持很大的正数或负数,至多可以有27位。另外,可以在Decimal类型中存储非常准确的数字,在小数点后可以有27位小数。
    double存放格式是包括符号位、幂数、系数组成。
    经比较double可提供更大的数值范围。这是存放格式和语言规定决定的。
    Decimal类型接受最多28位有效数字。当小数位为0时,他它支持很大的正数或负数,至多可以有27位。另外,可以在Decimal类型中存储非常准确的数字,在小数点后可以有27位小数。
    double存放格式是包括符号位、幂数、系数组成。
    经比较double可提供更大的数值范围。这是存放格式和语言规定决定的。
    Decimal类型接受最多28位有效数字。当小数位为0时,他它支持很大的正数或负数,至多可以有27位。另外,可以在Decimal类型中存储非常准确的数字,在小数点后可以有27位小数。
    double存放格式是包括符号位、幂数、系数组成。
    经比较double可提供更大的数值范围。这是存放格式和语言规定决定的。
    Decimal类型接受最多28位有效数字。当小数位为0时,他它支持很大的正数或负数,至多可以有27位。另外,可以在Decimal类型中存储非常准确的数字,在小数点后可以有27位小数。
    double存放格式是包括符号位、幂数、系数组成。
    经比较double可提供更大的数值范围。这是存放格式和语言规定决定的。
    Decimal类型接受最多28位有效数字。当小数位为0时,他它支持很大的正数或负数,至多可以有27位。另外,可以在Decimal类型中存储非常准确的数字,在小数点后可以有27位小数。
    double存放格式是包括符号位、幂数、系数组成。
    经比较double可提供更大的数值范围。这是存放格式和语言规定决定的。
    Decimal类型接受最多28位有效数字。当小数位为0时,他它支持很大的正数或负数,至多可以有27位。另外,可以在Decimal类型中存储非常准确的数字,在小数点后可以有27位小数。
    double存放格式是包括符号位、幂数、系数组成。
    经比较double可提供更大的数值范围。