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

邮差的信 提交于 2019-12-21 07:06:58

问题


Why is it called a single in VB.net? I'm sure there is a good reason but it doesn't seem intuitive to a non formally trained programmer like me.


回答1:


BPAndrew's question seems to be really "why float in C# and Single in VB.NET", which noone actually answered, so here's my 2p...

The use of "float" in C# seems to be a throwback to its C/C++ heritage. "float" still maps to the System.Single type in C#, so the keyword just exists for convenience. You could just as well declare the variable as "Single" in C# the same as you do in VB.NET.

(And as stated above, naming them Single/Double actually makes more sense as they are single/double precision floating-point numbers.)




回答2:


As others have said, they map to "single" and "double" precision binary floating point types. Personally I think it was a sideways step to just name System.Single and System.Double - why not System.Float32 and System.Float64 to match the integer types?




回答3:


The reason is that both single and double are both Floating Point numbers.

single is short for Single Precision Floating Point Number (32 bits)
double is short for Double Precision Floating Point Number (64 bits)

Therefore to call a floating point number float is ambiguous.

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




回答4:


I think it is a shorthand for "Single-precision" Double is "Double-precision"

While C-style int and float was probably referring to "integer" and "floating point"




回答5:


I would like to add my hypothesis for the naming convention.

In the C/C++ word that Java and then C# were born out of, int/long and float/double could vary based on the architecture in which it resides, 32-bit or 64-bit.

In portable VM languages like Java and C#, these types do NOT change, and therefore, the naming convention could reflect that. Or it could just be what's most comfortable the last generation of programmers. Or we could create aliases for everything and let everyone do whatever they want!!




回答6:


The technical name is a 'single precision floating point', 'single' because it takes a single word in memory (32 bits). A double, meanwhile, takes 64 bits on most architectures.



来源:https://stackoverflow.com/questions/272013/c-sharp-float-vs-vb-net-single-namin-complainin

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!