Odpowiedzi:
Oznacza to, że jest to dziesiętny, jak powiedzieli inni. Jednak początki prawdopodobnie nie są te sugerowane gdzie indziej w tej odpowiedzi. Ze standardu z adnotacjami w języku C # (wersja ECMA, a nie wersja MS):
decimal
Przyrostek M / m od D / d już podjąćdouble
. Chociaż sugerowano, że M oznacza pieniądze, Peter Golde przypomina, że M został wybrany po prostu jako następny najlepszy list wdecimal
.
Podobny Adnotacja wspomina się, że wczesne wersje C # zawiera „T” i „S”, byte
i short
literałami odpowiednio. Zostały porzucone z tego powodu, że nie były bardzo użyteczne.
Ze specyfikacji C #:
var f = 0f; // float
var d = 0d; // double
var m = 0m; // decimal (money)
var u = 0u; // unsigned int
var l = 0l; // long
var ul = 0ul; // unsigned long
Pamiętaj, że możesz użyć wielkiej lub małej litery.
M odnosi się do pierwszego niejednoznacznego znaku „dziesiętnego”. Jeśli go nie dodasz, liczba zostanie potraktowana jako podwójna.
D jest podwójny.
0.42
na dziesiętną może dać inną wartość niż 0.42M
(i to samo w przypadku używania podwójnego literału zamiast literału zmiennoprzecinkowego - float val = 423.3
również się nie powiedzie). Więc wybierasz między subtelnie złym zachowaniem a błędem kompilatora, którego naprawienie zajmuje pół sekundy i jest zgodne ze standardami CLR i C #.
Prawdziwy literał z przyrostkiem M lub m jest typu dziesiętnego. Na przykład literały 1 m, 1,5 m, 1 e 10 m i 123,456 M są dziesiętne. Literał ten jest konwertowany na wartość dziesiętną poprzez pobranie dokładnej wartości i, jeśli to konieczne, zaokrąglenie do najbliższej możliwej do reprezentacji wartości za pomocą zaokrąglenia bankierskiego. Każda skala widoczna w literale jest zachowywana, chyba że wartość jest zaokrąglona lub wartość wynosi zero (w którym to przypadku znak i skala będą wynosić 0). Stąd dosłowne 2,900 m zostanie sparsowane do postaci dziesiętnej ze znakiem 0, współczynnikiem 2900 i skalą 3.
Cóż, myślę, że M reprezentuje mantysę. Dziesiętna może być używana do oszczędzania pieniędzy, ale to nie znaczy, dziesiętna używana tylko do pieniędzy.