web-dev-qa-db-ja.com

C#Float vs. VB.net Single-Namin'complainin '

VB.netでシングルと呼ばれるのはなぜですか?正当な理由があると確信していますが、私のような正式な訓練を受けていないプログラマーには直感的ではないようです。

BPAndrewの質問は、実際には「C#でフロートし、VB.NETでシングルを使用する理由」のようですが、実際には誰も答えていません。これが私の2pです...

C#での「float」の使用は、C/C++の伝統への逆戻りのようです。 「float」は引き続きSystem.SingleタイプのC#にマップされるため、便宜上、キーワードは存在します。 VB.NETの場合と同じように、C#でも変数を「シングル」として宣言することもできます。

(そして、上記のように、それらにシングル/ダブルという名前を付けることは、シングル/倍精度浮動小数点数であるため、実際にはより意味があります。)

32
Xiaofu

他の人が言っているように、それらは「シングル」および「ダブル」精度のバイナリ浮動小数点型にマップされます。個人的には、System.SingleSystem.Doubleに名前を付けるのは横向きのステップだったと思います。整数型に一致するようにSystem.Float32System.Float64を付けないのはなぜですか?

18
Jon Skeet

その理由は、singleとdoubleの両方が両方とも浮動小数点数であるためです。

singleは、単精度浮動小数点数(32ビット)の略です。
doubleは、倍精度浮動小数点数(64ビット)の略です。

したがって、浮動小数点数を呼び出すことはあいまいです。

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

8
LeppyR64

"Single-precision"shorthandだと思いますDoubleは "Double-precision"です

C-style intfloatはおそらく"integer""floating point"を参照していましたが

2
chakrit

命名規則についての私の仮説を追加したいと思います。

JavaそしてC#が生まれたC/C++ Wordでは、int/longとfloat/doubleは、それが存在するアーキテクチャ、32ビットまたは64ビットによって異なる可能性があります。 。

ポータブルVM JavaやC#などの言語では、これらのタイプは変更されないため、命名規則couldはそれを反映しています。または、最後の世代のプログラマーにとって最も快適なものかもしれません。あるいは、すべてのエイリアスを作成して、誰もがやりたいことをできるようにすることもできます。

1
max

技術名は「単精度浮動小数点」、「single」です。これは、メモリ内で単一のワード(32ビット)を使用するためです。一方、doubleは、ほとんどのアーキテクチャで64ビットを使用します。

0
C. Broadbent