Comptez combien de fois vous devez diviser le nombre par 10 jusqu'à ce qu'il soit inférieur à 1 -> qui vous donne les chiffres avant la virgule.
Ensuite, comptez combien de fois vous devez multiplier le nombre original par 10 jusqu'à ce qu'il soit égal au résultat Math.Floor -> qui vous donne les chiffres derrière les points décimaux.
Add. Soit heureux.
Editer: Comme le souligne Joey, il y a une certaine incertitude. Définissez un nombre maximum de chiffres avant de ne pas créer une boucle infinie. D'autre part - « Combien de temps est la côte du Danemark? » ...
Zut Aww, ce qui ne va pas avec: 'deux d = 56,46855976; int length = d.ToString(). Replace (".", "") .Length; ' – slugster
Prenez également en compte que le nombre que vous voyez (56.46855976) est seulement une * représentation * d'une valeur. La valeur 1/3 est très courte, le nombre 0.33333 ... ne l'est pas. Donc, sauf pour les problèmes d'affichage, il n'y a pas beaucoup d'informations dans la longueur d'un nombre. –
Copie possible de [C# Decimal to string pour devise] (https://stackoverflow.com/questions/10437416/c-sharp-decimal-to-string-for-currency) – TylerH