代码之家  ›  专栏  ›  技术社区  ›  Konstantin

最大值与.NET中的long和double的大小

  •  8
  • Konstantin  · 技术社区  · 16 年前

    众所周知,在.NET中,long和double的大小都是8字节。然而,double可以存储比long多得多的数据。考虑到double还需要在小数点后的数字上存储数据,这怎么可能呢?

    问题的简短版本:

    数学Pow(2,64)<double.MaxValue

    3 回复  |  直到 16 年前
        1
  •  20
  •   mmmmmm    16 年前

    Short-answer double仅存储最有效的数字,而不是数字中的所有数字。e、 g.如果您有双人房>long的最大值它不会存储小数点后的数字或小数点左侧的任何数字的任何信息。

    What every computer scientist should know about Floating-Point Arithmetic

        2
  •  2
  •   Danny Varod    16 年前

    基于整数的类型的整数范围为-2^(n-1)2。。。2^(n-1)-1(签名), 或0。。。2^n-1(未签名)。

    定点变量与基于整数的类型相同,仅具有常数因子(例如,对于0.01:0.01*(0…2^n-1))。

    任何语言中的浮点变量(float和double)都使用一些位表示指数,其余的位表示指数之前的数字。它们的精确度较低(x+1可能等于x,因为x是一个非常大的数字),但范围要大得多。

        3
  •  1
  •   Michał Piaskowski    16 年前

    double是浮点数。Whitch bassicaly表示,当存储在double中的数字越来越大时,它就变得很有趣,最不重要的部分就被忽略了。

    例如,当你有一个像1000亿这样的数字时,用double表示。