Aby pracować z dziesiętnymi typami danych, muszę to zrobić ze zmienną inicjalizacją:
decimal aValue = 50.0M;
Co oznacza część M?
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 #:
Pamiętaj, że możesz użyć wielkiej lub małej litery.
źródło
M odnosi się do pierwszego niejednoznacznego znaku „dziesiętnego”. Jeśli go nie dodasz, liczba zostanie potraktowana jako podwójna.
D jest podwójny.
źródło
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.
Przeczytaj więcej o prawdziwych literałach
źródło
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.
źródło