《c#高级编程》中指出,decimal 类型用于表示高精度浮点数,有28位,可以表示128位高精度十进制数,
范围是(±1.0×10^-28---±7.9×10^28),想问下,这个范围 是怎么计算出来的??28位二进制,2^28 =约2亿多而已啊

解决方案 »

  1.   

    《c#高级编程》 说 decimal ,有28位 貌似不是二进制,是说28位10进制,还是28位16进制?那个范围是怎么计算出来的啊?
      

  2.   


    http://msdn.microsoft.com/zh-cn/library/system.decimal.aspx
      

  3.   

    decimal 类型可以精确地表示非常大或非常精确的小数。大至 10^28(正或负)以及有效位数多达 28 位的数字可以作为 decimal 类型存储而不失精确性。该类型对于必须避免舍入错误的应用程序很有用。
    http://msdn.microsoft.com/zh-cn/library/364x0z75(VS.80).aspx
      

  4.   

    我只知道,Java中这个数据类型不好用,做运算居然还得用方法,我晕倒
      

  5.   

    哦,那个msdn上说28次方是10进制的,2进制的是96次方
      

  6.   


    28位10进制 准确说应该是28-29位准确数 最大值 79228162514264337593543950335M
    24位16进制                最大值 0XFFFFFFFFFFFFFFFFFFFFFFFF   (24个F)
    96位 2进制                              最大值 11111111111 ... 11111111111111 (96个1)2楼正解