.net 文档中的C#数据类型混淆

cs7cruho  于 2022-11-26  发布在  .NET
关注(0)|答案(2)|浏览(228)

我正在MSDN上浏览“浮点数字类型(C#参考)”的文档,https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/floating-point-numeric-types
它有一个表,“浮点类型的特征”,描述了C#处理的不同浮点数据类型的近似范围。我不明白的是为什么“近似范围”列中的MIN和MAX同时为正和负。跳过链接单击,下面是该表。
| C#型别/保留字|近似范围|精确度|尺寸大小|.NET类型|
| - -|- -|- -|- -|- -|
| 浮体|±1.5 x 10−45至±3.4 x 1038|约6-9位数|4个字节| System.Single |
| 加倍|±5.0 × 10−324至±1.7 × 10308|约15-17位数|8个字节| System.Double |
| 十进制的|±1.0 x 10-28至±7.9228 x 1028| 28-29位数|16个字节| System.Decimal |
为什么MIN和MAX的近似范围都有一个±?MIN不应该是-,MAX不应该是+,就像这里的整数类型https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/integral-numeric-types一样?也许我误解了浮点的一些东西。

  • 谢谢-谢谢
huwehgph

huwehgph1#

也许可以说得更清楚一些,但这表示了给定数据类型所能表示的最小绝对值和最大绝对值。举个例子,如果我们考虑double,就不可能表示3e-324 -它将变成大约5.0e-324,即double.Epsilonhttps://learn.microsoft.com/en-us/dotnet/api/system.double.epsilon?view=net-7.0)。
这些值适用于正值和负值,因此使用±。

zzzyeukh

zzzyeukh2#

这里重要的是指数的符号。
double和float类型用于近似值,对于精确值应避免使用。一些程序员会犯使用它们的错误,因为与decimal类型相比,在执行复杂计算时性能会有所提高。
解释我认为让你困惑的事
我将降低指数以便于理解
±是“more or less”的替代,因为浮点型和双精度型被推荐用于近似。
第一部分适用于小于1(分数)的值。

*±1.5 x 10^−5=“或多或少”0,000015

第二部分用于整数。

*±3.4 x 10^5=“更多或更少”340.000

相关问题