Declaration suffix for decimal type

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.


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.


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)

Tags:

C#

.Net