2008-11-07 14 views

Respuesta

28

pregunta de BPAndrew parece ser realmente "por qué flotan en C# y VB.NET individual en", que en realidad nadie respondió, así que aquí está mi 2p ...

El uso de "flotar" en C# parece ser un retroceso a su herencia de C/C++. "flotante" todavía se asigna al sistema. Solo escriba C#, por lo que la palabra clave solo existe por conveniencia. También podría declarar la variable como "Única" en C# de la misma manera que en VB.NET.

(Y como se ha dicho, nombrarlos simple/doble realidad tiene más sentido, ya que son los números individuales/doble precisión de punto flotante.)

+0

2p, eso es bastante costoso, comparado con el centavo de CDN. – LeppyR64

+1

'double' es otra palabra clave en C# que sale por conveniencia que se asigna a' System.Double'. – JohnB

2

Creo que es una abreviatura de "precisión simple" Doble es "doble precisión"

Mientras int C-estilo y el flotador probablemente se refería a "entero" y "punto flotante"

+0

int significa entero, que es totalmente diferente de un número de punto fijo (decimal). punto fijo es exactamente eso, un número real con una precisión preestablecida (fija). http://mathforum.org/dr.math/faq/faq.integers.html –

0

El nombre técnico es un 'punto flotante de precisión simple', 'único' porque toma una sola palabra en la memoria (32 bits). Un doble, mientras tanto, toma 64 bits en la mayoría de las arquitecturas.

+1

Originalmente, el single no significaba una sola palabra, ya que eran máquinas de 16 bits. El punto flotante y su precisión han existido por más tiempo que las máquinas de 32 bits. – kenny

16

Como han dicho otros, se asignan a "solo" y "doble "Tipos de punto flotante binario de precisión. Personalmente, creo que fue un paso hacia un lado simplemente nombrar System.Single y System.Double - ¿por qué no System.Float32 y System.Float64 para que coincida con los tipos enteros?

+2

Además, el [CIL] (http: //en.wikipedia.org/wiki/Common_Intermediate_Language) los llama 'float32' y' float64', respectivamente, que corresponden exactamente al 'System.Single' y' System.Double' del [BCL] (http://en.wikipedia.org/wiki/Base_Class_Library). –

1

Me gustaría agregar mi hipótesis para la convención de nomenclatura.

En la palabra C/C++ de la que nacieron Java y C#, int/long y float/double pueden variar según la arquitectura en la que reside, 32 bits o 64 bits.

En los lenguajes de VM portátiles como Java y C#, estos tipos NO cambian, y por lo tanto, la convención de nomenclatura podría reflejar eso. O podría ser lo que sea más cómodo para la última generación de programadores. ¡O podríamos crear alias para todo y dejar que todos hagan lo que quieran!