Zaktualizowano następujące komentarzem user1676558
Spróbuj tego:
decimal one = 1000M;
decimal two = 12.5M;
decimal three = 12.567M;
Console.WriteLine(one.ToString("G"));
Console.WriteLine(two.ToString("G"));
Console.WriteLine(three.ToString("G"));
Dla wartości dziesiętnej, domyślna precyzja dla specyfikatora formatu "G" to 29 cyfr, a notacja o stałym punkcie jest zawsze używana, gdy precyzja jest pominięta, więc jest taka sama jak "0. #### ######################### ".
W przeciwieństwie do "0. ##" wyświetli wszystkie ważne miejsca dziesiętne (dziesiętna wartość nie może zawierać więcej niż 29 miejsc po przecinku).
Specyfikator formatu "G29" jest podobny, ale może używać notacji naukowej, jeśli jest bardziej zwarty (patrz Standard numeric format strings).
Zatem:
decimal d = 0.0000000000000000000012M;
Console.WriteLine(d.ToString("G")); // Uses fixed-point notation
Console.WriteLine(d.ToString("G29"); // Uses scientific notation
jego ważne jest, aby pamiętać, masz Musi zawierać jak najwięcej # objawy jak chcesz zobaczyć miejsca po przecinku w przypadku korzystania z tej metody. – AlexCuse