2010-08-25 4 views
19

Possible Duplicate:
Declaration suffix for decimal typeC# - Numérique Suffixes

Salut tout le monde,

Dans l'extrait de code ci-dessous; RewardValue est une décimale:

dto.RewardValue = 1.5; 

Maintenant, cela me donne l'erreur suivante:

"Impossible de convertir le type de double source pour cibler le type décimal"

est logique, et est facilement réparable en changeant que ligne de code à ceci:

dto.RewardValue = 1.5m; 

maintenant, le « m » convertit cela à une décimale et tout est bon.

Est-ce que quelqu'un sait quelque part où je pourrais trouver une liste de tous ces opérateurs de type "m"? (Et si vous pouviez me faire savoir ce que le terme approprié pour ceux qui sont, il serait grandement apprécié)

EDIT: Merci à HCL et MartyIX pour me faire savoir que ceux-ci sont appelés « suffixes »

+1

La réponse est trouvée à la question "dupe" , mais la question posée est beaucoup plus ciblée. Il demande explicitement juste le suffixe décimal ('decimal m = 2m;'), et cela demande une liste de tous les "suffixes numériques". Fwiw, 2 ¢, etc. – ruffin

Répondre

9

Here vous trouverez une liste et des liens.

1

http://dotnetperls.com/suffix-examples - ils l'appellent simplement numeric suffixes (http://msdn.microsoft.com/en-us/library/b1e65aza(VS.71).aspx - suffixe aussi ici)

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

Je crois que le terme que vous recherchez est "suffixe".

Exemples:

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

C'est une liste assez petite, vraiment.

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

Bien sûr, une valeur intégrale simple par lui-même est interprété comme un int, à moins qu'il ne soit trop grand pour être un int auquel cas il est un long, à moins qu'il ne soit trop grand pour un long auquel cas il est un ulong. Si c'est trop grand pour un ulong, vous ne pouvez pas l'utiliser comme un littéral (pour autant que je sache).

Une valeur avec un point décimal est interprétée automatiquement (comme vous l'avez constaté par vous-même) comme double.