Possible Duplicate:
Declaration suffix for decimal typeHey everyone,
In the following snippet of code; RewardValue is a decimal:
dto.RewardValue = 1.5;
Now, this gives me the following error:
"Cannot convert source type double to target type decimal"
Makes sense, and is easily fixable by changing that line of code to this:
dto.RewardValue = 1.5m;
Now, the "m" converts that to a decimal and all is good.
Does anybody know of somewhere where I could find a list of all those "m" type operators? (and if you could let me know what the proper term for those are, it would be greatly appreciated)
EDIT: Thanks to HCL and MartyIX for letting me know that these are referred to as "suffixes"
На самом деле, это довольно маленький список.
F: float
D: double
U: uint
L: long
UL: ulong
M: decimal
Конечно, простое целочисленное значение само по себе интерпретируется как int
, если только оно не слишком велико, чтобы быть int
, в этом случае оно представляет собой long
, если только он не слишком велик для лонга
, в этом случае это улонг
. Если он слишком велик для ulong
, вы не можете использовать его как литерал (насколько мне известно).
Значение с десятичной точкой автоматически интерпретируется (как вы сами выяснили) как двойное число
.
Я полагаю, что это называется "числовой литерал": http://www.blackwasp.co.uk/CSharpNumericLiterals.aspx
Я полагаю, что вы ищете термин "суффикс".
Примеры:
1; // int
1.0; // double
1.0f; // float
1.0m; // decimal
1u; // uint
1L; // long
1UL; // ulong
http://dotnetperls.com/suffix-examples - называют просто числовые суффиксы
(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;
Тип суффикса: float
Символ: F
Пример: float x = 100F;
Тип суффикса: double
Символ: D
Пример: double x = 100D;
Тип суффикса: десятичный
Символ: M
Пример: десятичный x = 100M;