2010-08-25 5 views
19

Possible Duplicate:
Declaration suffix for decimal typeC# - Numerische Suffixe

Hey everyone,

Im folgenden Code-Snippet; RewardValue ist eine Dezimalzahl:

dto.RewardValue = 1.5; 

Nun, das mir die folgende Störung gibt:

„nicht Quelle Typ double umwandeln Kann Typ dezimal Ziel“ durch Änderung

macht Sinn und ist leicht reparierbar, dass Codezeile folgendermaßen aus:

dto.RewardValue = 1.5m; 

Nun wandelt der „m“, dass in eine Dezimalzahl und alles ist gut.

Kennt jemand irgendwo, wo ich eine Liste aller dieser "M" -Typ Betreiber finden könnte? (Und wenn Sie könnten lassen Sie mich wissen, was der richtige Begriff für diejenigen sind, wäre es sehr zu schätzen)

EDIT: Dank HCL und MartyIX, dass Sie mich wissen, dass diese bezeichnet werden als „Suffixe“

+1

Die Antwort auf diese hilft bei der "Betrogene" Frage gefunden , aber die dort gestellte Frage ist viel gezielter. Es fragt explizit nur nach dem Dezimal Suffix ('dezimal m = 2m;'), und das fragt nach einer Liste aller "numerischen Suffixe". Fwiw, 2 ¢ usw. – ruffin

Antwort

9

Here finden Sie eine Liste und auch Links.

1

http://dotnetperls.com/suffix-examples - sie nennen es einfach numeric suffixes (http://msdn.microsoft.com/en-us/library/b1e65aza(VS.71).aspx - auch hier Suffix)

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

Ich glaube, der Begriff Sie suchen ist "Suffix".

Beispiele:

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

Es ist eine ziemlich kleine Liste, wirklich.

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

Natürlich eine einfache Integralwert von selbst wird als int interpretiert, es sei denn, es zu groß ist ein int zu sein, in welchem ​​Fall es ist ein long, es sei denn, es für einen long zu groß ist in diesem Fall ist es ein ulong. Wenn es für ein ulong zu groß ist, können Sie es nicht als ein Literal verwenden (so weit ich weiß).

Ein Wert mit einem Dezimalpunkt wird automatisch interpretiert (wie Sie selbst herausgefunden haben) als double.