4

我习惯于选择在保留语义的同时完全表示我的值所需的最小数据类型。我不使用longwhenint保证足够。同样适用于intvs short

但是对于实数,在 C# 中有常用的double-- 并且没有对应的singleor float。我仍然可以使用System.Single,但我想知道为什么 C# 没有像他们使用double.

相反,有语言关键字short, int, long, ushort, uint, 和ulong

那么,这是向开发人员发出的信号,即单精度已过时、已弃用,或者不应该以其他方式用于支持doubleordecimal吗?

(不用说,单精度的缺点是精度较低。这是众所周知的较小尺寸的权衡,所以我们不要关注这一点。)

编辑:抱歉,我错误地认为这float不是 C# 中的关键字。但它确实使这个问题变得毫无意义。

4

5 回答 5

8

float别名代表 .NET数据类型,System.Single所以我会说它可以安全使用。

于 2013-03-06T20:43:56.373 回答
5

C# 关键字和 .NET 类型名称之间存在以下对应关系:

double -  System.Double
float  -  System.Single

因此,在 C# 中,对于所讨论的两种类型中的每一种,都有一个关键字。

我不知道你是如何得到float不是 C# 关键字的印象。那当然是。

于 2013-03-06T20:44:17.360 回答
5

实际上,单精度浮点有一个“浮点”键。

也不要太确定 short 或 byte 是否比 int 更合适。int 通常是整数的最佳选择,请在此处阅读更多信息:Why should I use int instead of a byte or short in C#

于 2013-03-06T20:46:58.217 回答
3

默认情况下,除非另有说明,否则任何类似的文字2.0都会自动解释为 a 。与其他浮点表示相比double,这可能有助于持续更高的使用率。double只是一个旁注。

至于没有single去,float关键字转换为System.Single类型。

于 2013-03-06T20:45:16.927 回答
2

C# System.Single 别名为 float

于 2013-03-06T20:45:02.350 回答