我习惯于在保留语义的同时选择完全表示我的值所需的最小数据类型。当long
保证足够时,我不会使用int
。 int
与short
相同。
但对于实数,在C#中有常用的double
- 并且没有相应的single
或float
。我仍然可以使用System.Single
,但我想知道为什么C#不会像使用double
一样将其变成语言关键字。
相比之下,语言关键字为short
,int
,long
,ushort
,uint
和ulong
。
那么,这是否向开发人员发出信号:单精度是过时的,已弃用,还是应该不会用于double
或decimal
?
(毋庸置疑,单精度具有精度较低的缺点。对于较小的尺寸,这是一个众所周知的权衡,所以我们不要关注它。)
编辑:我很抱歉,我错误地认为float
不是C#中的关键字。但是,这使得这个问题没有实际意义。
答案 0 :(得分:8)
float
别名代表.NET System.Single
数据类型,所以我认为它可以安全使用。
答案 1 :(得分:5)
C#关键字和.NET类型名称之间存在以下对应关系:
double - System.Double
float - System.Single
因此,对于这两种类型中的每一种,C#中都有一个关键字。
我不知道您是如何得到float
不是C#关键字的印象。当然是。
答案 2 :(得分:5)
实际上,单精度浮点有一个“浮点”关键字。
同样不要确定short或byte是否比int更合适。 int通常是整数的最佳选择,请在此处阅读更多相关内容:Why should I use int instead of a byte or short in C#
答案 3 :(得分:3)
默认情况下,除非另有说明,否则2.0
等任何文字都会自动解释为double
。与其他浮点表示相比,这可能有助于double
的使用率持续提高。只是旁注。
如果没有 single
, float
关键字会转换为System.Single
类型。
答案 4 :(得分:2)
C#System.Single是别名
float