C#中的Float与VB.net中的Single有何区别? - 命名抱怨

25
为什么在VB.net中称之为Single?我相信有一个很好的理由,但对于像我这样没有接受过正式培训的程序员来说,这似乎不太直观。
6个回答

35

BPAndrew的问题似乎是关于C#中的浮点数和VB.NET中的单精度浮点数,这个问题没有人真正回答过,所以我来说一下我的看法...

C#中使用"float"似乎是它继承自C/C++的遗产。在C#中,"float"仍然映射到System.Single类型,因此该关键字只是出于方便而存在。你可以像在VB.NET中一样将变量声明为"Single"。

(正如上面所述,将它们命名为Single/Double其实更有意义,因为它们是单精度/双精度浮点数。)


2p,相比CDN的便士来说,代价相当高。 - LeppyR64
1
double 是C#中的另一个关键字,为方便起见映射到 System.Double - JohnB

19

正如其他人所说,它们映射到“单精度”和“双精度”二进制浮点类型。个人认为,仅仅将System.SingleSystem.Double命名是一个侧面的步骤 - 为什么不使用System.Float32System.Float64来匹配整数类型呢?


2
此外,CIL 分别称它们为 float32float64,分别对应于 BCLSystem.SingleSystem.Double - Jeppe Stig Nielsen

8

2

我认为shorthand是指“单精度”的缩写,而Double则是“双精度”

C-style intfloat可能是指“整数”和“浮点数”


int指整数,与定点(小数)数字完全不同。 定点是一个真实数字,具有预设(固定)精度。 http://mathforum.org/dr.math/faq/faq.integers.html - Robert Paulson

1

我想为命名约定添加我的假设。

在C/C++这个Java然后C#诞生的世界中,int/long和float/double可以根据它所在的架构而变化,32位或64位。

在像Java和C#这样的可移植的虚拟机语言中,这些类型是不会改变的,因此,命名约定可能反映了这一点。或者这可能只是最后一代程序员最舒适的选择。或者我们可以为所有东西创建别名,并让每个人随心所欲!!


0

技术名称为“单精度浮点数”,“单精度”是因为它在内存中只占用一个字(32位)。而双精度则在大多数架构上占用64位。


1
最初的“single”并不是指单个字,因为它们是16位机器。浮点数及其精度已经存在得比32位机器还要久。 - kenny

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接