If I want to use a decimal literal in code, I have seen that there exists the m-suffix (where m stands for money). Is this appropriate for any decimals or is there a more general assignment (d stands for double, that is for sure not the right thing although a direct conversion is supported).
object decimalValue=2m;
Please note, I took the object-assignment as example, bec开发者_JAVA技巧ause in the case of ...
decimal decimalValue=2;
... it's implicitly clear that 2 should be interpreted as decimal through the compiler.
m seems to be ok, msdn uses it as example for the 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.
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)
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.
精彩评论