2010-08-25 51 views
19

Possible Duplicate:
Declaration suffix for decimal typeC# - Los sufijos numéricos

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 fuente doble para apuntar tipo decimal"

tiene sentido, y es fácilmente corregible mediante el cambio que línea de código para esto:

dto.RewardValue = 1.5m; 

Ahora, la "m" que convierte a un decimal y todo está bien.

¿Alguien sabe de algún lugar donde podría encontrar una lista de todos esos operadores tipo "m"? (Y si me hagan saber lo que el término apropiado para aquellos son, sería muy apreciada)

EDIT: Gracias a HCL y MartyIX para dejarme saber que éstos se refieren como "sufijos"

+1

La respuesta a esto se encuentra en la pregunta "víctima" , pero la pregunta que se hizo allí es mucho más específica. Pregunta explícitamente solo por el sufijo decimal ('decimal m = 2m;'), y esto solicita una lista de todos los "sufijos numéricos". Fwiw, 2 ¢, etc. – ruffin

Respuesta

9

Here encontrará una lista y también enlaces.

1

http://dotnetperls.com/suffix-examples - lo llaman simplemente numeric suffixes (http://msdn.microsoft.com/en-us/library/b1e65aza(VS.71).aspx - También aquí el sufijo)

Suffix type: unsigned int

Character: U

Example: uint x = 100U;

Suffix type: long

Character: L

Example: long x = 100L;

Suffix type: unsigned long

Character: UL

Example: ulong x = 100UL;

Suffix type: float

Character: F

Example: float x = 100F;

Suffix type: double

Character: D

Example: double x = 100D;

Suffix type: decimal

Character: M

Example: decimal x = 100M;

16

Creo que el término que está buscando es "sufijo".

Ejemplos:

1; // int 
1.0; // double 
1.0f; // float 
1.0m; // decimal 
1u; // uint 
1L; // long 
1UL; // ulong 
12

Es una lista bastante pequeña, de verdad.

F: float 
D: double 
U: uint 
L: long 
UL: ulong 
M: decimal 

Por supuesto, un valor entero sin formato en sí mismo es interpretado como un int, a menos de que sea demasiado grande para ser un int en cuyo caso se trata de un long, a menos de que sea demasiado grande para un long en cuyo caso se trata de un ulong. Si es demasiado grande para ulong, no puede usarlo como literal (hasta donde yo sé).

Un valor con un punto decimal se interpreta automáticamente (como descubriste por ti mismo) como double.

Cuestiones relacionadas