Jak sformatować liczbę do określonej liczby miejsc dziesiętnych (zachować końcowe zera), gdzie liczba miejsc jest określona przez zmienną?Jak sformatować dziesiętny na programowo sterowaną liczbę miejsc po przecinku w języku C#?
np.
int x = 3;
Console.WriteLine(Math.Round(1.2345M, x)); // 1.234 (good)
Console.WriteLine(Math.Round(1M, x)); // 1 (would like 1.000)
Console.WriteLine(Math.Round(1.2M, x)); // 1.2 (would like 1.200)
Zauważ, że ponieważ chcę kontrolować liczbę miejsc programowo, to string.Format nie będzie działać (na pewno nie powinien generować ciąg formatu):
Console.WriteLine(
string.Format("{0:0.000}", 1.2M)); // 1.200 (good)
Mam tylko to Microsoft.VisualBasic i użyć FormatNumber?
Mam nadzieję, że brakuje tu czegoś oczywistego.
Jak określić liczbę miejsc po przecinku jako zmienną? Przypuszczam, że mógłbym zrobić (1,2M) .ToString ("D" + x), ale to wydaje się trochę hacky. –
Zawsze możesz włączyć to w metodę rozszerzenia. –
To rośnie na mnie, dzięki za metodę rozszerzenia. –