25

为什么它在 VB.net 中被称为单曲?我确信这是有充分理由的,但对于像我这样未经正式培训的程序员来说,这似乎并不直观。

4

6 回答 6

34

BPAndrew 的问题似乎真的是“为什么在 C# 中浮动而在 VB.NET 中是单一的”,实际上没有人回答,所以这是我的 2p ...

在 C# 中使用“float”似乎是对其 C/C++ 传统的回归。“float”仍然映射到 C# 中的 System.Single 类型,因此关键字只是为了方便而存在。您可以像在 VB.NET 中一样在 C# 中将变量声明为“Single”。

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

于 2008-11-07T13:38:10.603 回答
18

正如其他人所说,它们映射到“单”和“双”精度二进制浮点类型。就我个人而言,我认为只是命名System.Single和匹配整数类型是一个侧面步骤System.Double- 为什么不System.Float32匹配System.Float64整数类型?

于 2008-11-07T14:18:58.960 回答
8

原因是 single 和 double 都是浮点数。

single 是单精度浮点数(32 位)
的缩写 double 是双精度浮点数(64 位)的缩写

因此,调用浮点数 float 是模棱两可的。

http://en.wikipedia.org/wiki/Single_precision
http://en.wikipedia.org/wiki/Double_precision

于 2008-11-07T13:12:46.830 回答
2

我认为这是一个shorthandfor "Single-precision" Doubleis "Double-precision"

虽然C-style intfloat可能指的是"integer""floating point"

于 2008-11-07T13:08:21.880 回答
1

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

在 Java 和 C# 诞生的 C/C++ 词中,int/long 和 float/double 可能会根据其所在的体系结构(32 位或 64 位)而有所不同。

在 Java 和 C# 等可移植 VM 语言中,这些类型不会改变,因此命名约定可以反映这一点。或者它可能只是上一代程序员最舒服的东西。或者我们可以为所有内容创建别名,让每个人为所欲为!

于 2011-11-04T13:53:56.857 回答
0

技术名称是“单精度浮点”,“单”是因为它在内存中占用一个单词(32 位)。与此同时,在大多数架构上,double 占用 64 位。

于 2008-11-07T13:11:23.153 回答