Declaration suffix for decimal type
Solution 1:
Documented in the C# language specification, chapter 2.4.4:
float f = 1.2f;
double d = 1.2d;
uint u = 2u;
long l = 2L;
ulong ul = 2UL;
decimal m = 2m;
Nothing for int, byte, sbyte, short, ushort.
Solution 2:
Without a suffix, a numerical real literal will be a Double. The m suffix specifies that a numeric real literal should be a Decimal.
This is actually important to know, since arithmetic on floating point values (such as Double) is imprecise. For instance:
object decimalValue=(5.32 + 2.23);
Here, decimalValue will actually contain a Double, with the unexpected value of 7.5500000000000007! If I want 7.55, I could do this:
object decimalValue=(5.32m + 2.23m);
To answer your question about whether there is a more general suffix, m is the only suffix for Decimal in C#. It might stand for money as you mentioned, but they had do use something other than d, since that's used by Double!
Further reading: decimal (C# Reference)
Solution 3:
Short answer to Declare Decimal in C#
decimal firstMoney = 141.28m;
O/P: 141.28
decimal secondMoney = 100.00m;
O/P: 100
For more refer MSDN.
Hope helps someone.