2010-08-25 4 views
19

Possible Duplicate:
Declaration suffix for decimal typeC# - Числовые Суффиксы

Привет всем,

В следующем фрагменте кода; RewardValue десятичное:

dto.RewardValue = 1.5; 

Теперь, это дает мне следующую ошибку:

«Невозможно преобразовать тип источника двойной целевой тип десятичной»

имеет смысл, и это легко поправимо, изменяя что строка кода для этого:

dto.RewardValue = 1.5m; 

Теперь, «м» преобразует что в десятичной системе и все хорошо.

Кто-нибудь знает где-нибудь, где я мог бы найти список всех этих операторов типа «m»? (И если вы могли бы дайте мне знать, что правильный термин для тех, кто есть, это было бы весьма признателен)

EDIT: Благодаря HCL и MartyIX для давая мне знать, что они называют «суффиксов»

+1

Ответ на этот вопрос можно найти в «дубликатов» вопрос , но вопрос, который задал вопрос, гораздо более целенаправлен. Он запрашивает явно только для десятичного суффикса ('decimal m = 2m;'), и это запрашивает список всех «числовых суффиксов». Fwiw, 2 ¢ и т. Д. – ruffin

ответ

1

http://dotnetperls.com/suffix-examples - они называют это просто numeric suffixes (http://msdn.microsoft.com/en-us/library/b1e65aza(VS.71).aspx - также суффикс здесь)

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

Я считаю, что термин, который вы ищете, "суффикс".

Примеры:

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

Это довольно небольшой список, на самом деле.

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

Конечно простой интегральное значение само по себе интерпретируется как int, если это не слишком большой, чтобы быть int в этом случае это long, если это не слишком большой для long и в этом случае это ulong. Если он слишком большой для ulong, вы не можете использовать его как литерал (насколько я знаю).

Значение с десятичной точкой в ​​нем автоматически интерпретируется (как вы выяснили для себя) как double.

Смежные вопросы