Pisząc kod odpowiedzialny za walidację liczb potrzebowałem sprawdzić ile miejsc po przecinku ma dany decimal. Użyłem rozwiązania może mało eleganckiego ale przynajmniej działającego:) :
decimal decimalNumber = 21.235; int length = (decimalNumber % 1).ToString().Length - 2;
Reszta z dzielenia przez jeden zawsze zwraca to co jest po przecinku. Dla 21.235 będzie to 0.235. Zatem długość string’a minus dwa ( jeden dla przecinka, jeden dla zera) stanowi liczbę miejsc po przecinku.
Może komuś się to przyda w przyszłości :).
Gwoli ścisłości:
decimal decimalNumber = 21.235m;
🙂
Pozdrawiam
Heh, jakie proste a nie wiedziałem nawet o takim rozwiązaniu. Dzięki pewnie się przyda kiedyś 😉
decimal decimalNumber = 0;
Console.Write((decimalNumber % 1).ToString().Length – 2);
Niespodzianka 😛