views:

3276

answers:

6

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  A: 

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"

chakrit
int means integer, which is wholly different than a fixed-point (decimal) number. fixed-point is exactly that, a real number with a pre-set (fixed) precision. http://mathforum.org/dr.math/faq/faq.integers.html
Robert Paulson
A: 

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.

PlacidBox
Originally the single didn't mean single word, since they were 16 bit machines. Floating point and its precision has been around longer than 32 bit machines have.
kenny
+6  A: 

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

Jason Lepack
+8  A: 

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.)

Xiaofu
2p, that's pretty costly, compared to the CDN penny.
Jason Lepack
`double` is another keyword in C# that exits for convenience that maps to `System.Double`.
JohnB
+4  A: 

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?

Jon Skeet
+1  A: 

What's even more confusing is that what F# calls a float is actually a System.Double.

JaredPar