'd' is notation used to define 'double' constants.
Without these identifiers, numeric constants default to Int32 and float constants default to double.
In cases where the 'var' keyword is used and a non-Int32 default value is required, these identifiers can help the compiler to defer the type of 'var'.
It's not very common practise, but it can help.
Not all numeric value types have a symbol identifier - SByte, Byte, Int16, UInt16 and Int32 do not have symbols, though they have been proposed for future .NET versions.
- UInt32 (uint): U
- Int64 (long): L
- UInt64 (ulong): UL
- Single (float): F
- Double (double): D, E
- Decimal (decimal): M
* All symbols can be lower-case.
Take this scenario for example;
var currency = 0.0; // default is double
When dealing with currency, it is common practise to use the Decimal value type, so the above code would require modification.
Decimal uses the symbol identifier 'm' or 'M';
var currency = 0.0m; // define as decimal