Ответ 1
Здесь вы найдете список, а также ссылки.
Возможный дубликат:
Суффикс декларации для десятичного типа
Привет всем,
В следующем фрагменте кода; RewardValue является десятичной:
dto.RewardValue = 1.5;
Теперь это дает мне следующую ошибку:
"Невозможно преобразовать исходный тип double в целевой тип decimal"
Имеет смысл и легко фиксируется, изменяя эту строку кода на это:
dto.RewardValue = 1.5m;
Теперь "m" преобразует это в десятичное, и все это хорошо.
Кто-нибудь знает где-нибудь, где я мог бы найти список всех этих операторов типа "m"? (и если бы вы могли дать мне знать, каков правильный термин для них, это было бы очень полезно)
EDIT: Благодаря HCL и MartyIX за то, что они сообщили мне, что они называются "суффиксами"
Здесь вы найдете список, а также ссылки.
Я считаю, что термин, который вы ищете, это "суффикс".
Примеры:
1; // int
1.0; // double
1.0f; // float
1.0m; // decimal
1u; // uint
1L; // long
1UL; // ulong
Это довольно маленький список, действительно.
F: float
D: double
U: uint
L: long
UL: ulong
M: decimal
Конечно, одно целое значение само по себе интерпретируется как int
, если оно слишком велико, чтобы быть int
, в этом случае оно a long
, если оно не слишком велико для long
, и в этом случае это a ulong
. Если он слишком велик для ulong
, вы не можете использовать его как литерал (насколько я знаю).
Значение с десятичной точкой в нем автоматически интерпретируется (как вы выяснили для себя) как double
.
Я считаю, что это называется "числовым литтером": http://www.blackwasp.co.uk/CSharpNumericLiterals.aspx
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;
Пожалуйста, посмотрите http://msdn.microsoft.com/en-us/library/364x0z75.aspx и http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx
Надеюсь, что это поможет,