Подтвердить что ты не робот

С# - числовые суффиксы

Возможный дубликат:
Суффикс декларации для десятичного типа

Привет всем,

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

dto.RewardValue = 1.5;

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

"Невозможно преобразовать исходный тип double в целевой тип decimal"

Имеет смысл и легко фиксируется, изменяя эту строку кода на это:

dto.RewardValue = 1.5m;

Теперь "m" преобразует это в десятичное, и все это хорошо.

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

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

4b9b3361

Ответ 1

Здесь вы найдете список, а также ссылки.

Ответ 2

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

Примеры:

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

Ответ 3

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

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

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

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

Ответ 5

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

Тип суффикса: unsigned int

Символ: U

Пример: uint x = 100U;

Тип суффикса: длинный

Характер: L

Пример: long x = 100L;

Тип суффикса: unsigned long

Символ: UL

Пример: ulong x = 100UL;

Тип суффикса: плавающий

Символ: F

Пример: float x = 100F;

Тип суффикса: double

Характер: D

Пример: double x = 100D;

Тип суффикса: десятичный

Характер: M

Пример: десятичное x = 100M;