generate - C#- Sufijos Numéricos
params comments c# (4)
Posible duplicado:
Sufijo de declaración para tipo decimal
Hola a todos,
En el siguiente fragmento de código; RewardValue es un decimal:
dto.RewardValue = 1.5;
Ahora, esto me da el siguiente error:
"No se puede convertir el tipo de origen doble al tipo de destino decimal"
Tiene sentido, y se puede arreglar fácilmente cambiando esa línea de código a esto:
dto.RewardValue = 1.5m;
Ahora, la "m" convierte eso a un decimal y todo está bien.
¿Alguien sabe de algún lugar donde pueda encontrar una lista de todos esos operadores tipo "m"? (y si pudiera hacerme saber cuál es el término apropiado para esos, sería muy apreciado)
EDITAR: Gracias a HCL y MartyIX por hacerme saber que estos se conocen como "sufijos"
Creo que el término que estás buscando es "sufijo".
Ejemplos:
1; // int
1.0; // double
1.0f; // float
1.0m; // decimal
1u; // uint
1L; // long
1UL; // ulong
Creo que se llama "litteral numérico": http://www.blackwasp.co.uk/CSharpNumericLiterals.aspx
Es una lista bastante pequeña, de verdad.
F: float
D: double
U: uint
L: long
UL: ulong
M: decimal
Por supuesto, un valor integral simple en sí mismo se interpreta como un int
, a menos que sea demasiado grande para ser un int
en cuyo caso es un long
, a menos que sea demasiado grande para un long
en cuyo caso es un ulong
. Si es demasiado grande para un ulong
, no puedes usarlo como un literal (por lo que sé).
Un valor con un punto decimal se interpreta automáticamente (como lo descubrió usted mismo) como un double
.
http://dotnetperls.com/suffix-examples - lo llaman simplemente numeric suffixes
( http://msdn.microsoft.com/en-us/library/b1e65aza(VS.71).aspx - también el sufijo aquí)
Tipo de sufijo: unsigned int
Personaje: U
Ejemplo: uint x = 100U;
Tipo de sufijo: largo
Personaje: L
Ejemplo: largo x = 100L;
Tipo de sufijo: sin firma larga
Personaje: UL
Ejemplo: ulong x = 100UL;
Tipo de sufijo: flotador
Personaje: F
Ejemplo: float x = 100F;
Tipo de sufijo: doble
Personaje: D
Ejemplo: doble x = 100D;
Tipo de sufijo: decimal
Personaje: M
Ejemplo: decimal x = 100M;