¿Es lo mismo un Cast que un Convert?
¡A ver los listos!
¿Me dicen una diferencia entre hacer un cast o aplicar la clase Convert?
…
Pues hay una que parece muy “sutil” pero que en programas que necesiten cálculos matemáticos exactos son críticas.
Podemos hace esto:
float f = ...
int i = (int) f;
O también podemos hacer esto otro.
float f = ...
int i = Convert.ToInt32(f);
¡Pero miren los resultados!
|
float
|
(int) cast en C#
|
Convert.ToInt(float)
|
|
4.1
|
4
|
4
|
|
4.5
|
4
|
4
|
|
5.5
|
5
|
6
|
Conclusiones: Mientras el cast trunca, el convert redondea.
Seguro que más de uno está pensando si no ha metido la pata alguna vez con este tema.
¡Saludos!