1

我正在学习 C# 并试图获得 C# 中实际数据类型范围的逻辑可视化表示。

我已经遍历整数,现在可以使用浮点和双精度数据类型。

  1. 8 位(1 个字节),sbyte,-128 到 127。
  2. 8 位(1 个字节),字节,0 到 255。
  3. 16 位(2 字节),短,-32,768 到 32,767。
  4. 16 位(2 字节),ushort,0 到 65535。
  5. 32 位(4 字节),整数,-2,147,483,648 到 2,147,483,647。
  6. 32 位(4 字节),uint,0 到 4,294,967,295。
  7. 64 位(8 字节),长,-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
  8. 64 位(8 字节),ulong,0 到 18,446,744,073,709,551,615。

以下是 msdn 中对 float 和 double 数据类型大小的引用:

浮动: http: //msdn.microsoft.com/en-us/library/b1e65aza (v=vs.110).aspx

在此处输入图像描述

双:http: //msdn.microsoft.com/en-us/library/678hzkk9.aspx

在此处输入图像描述

因此,为了遵守上面编号列表中指定实际数字范围的惯例,这两个范围实际上代表什么?

4

2 回答 2

8

范围实际上是 -infinity 到 +infinity。

最大的有限 float是 340282346638528859811704183484516925440。这是 2 128 –2 128–24

The largest finite double is 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368. This is 2 1024 –2 1024–53 .

于 2013-07-20T10:10:31.750 回答
6

为简洁起见,范围以“指数格式”表示。例如,+1.7e+308 表示 17 后跟 307 个零:

1,700,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000

因此,对于如此大的数字,指数格式是首选。对于极小的数字也是如此。

另外,看看Jon Skeet 的这篇文章

于 2013-07-20T06:57:16.473 回答