Méthode de calcul des nombres décimaux qui n'est pas affectée par les paramètres culturels
Question :
Comment déterminer avec précision le nombre de décimales pour une valeur décimale sans être affecté par les paramètres régionaux ?
Réponse :
Comme indiqué dans la question, s'appuyer sur le fractionnement de chaînes pour extraire le nombre de décimales est sensible aux différents séparateurs décimaux locaux. Une approche plus fiable consiste à utiliser la méthode decimal.GetBits
en combinaison avec des opérations sur les bits :
<code class="language-csharp">decimal argument = 123.456m; int count = BitConverter.GetBytes(decimal.GetBits(argument)[3])[2];</code>
Explication du code :
decimal.GetBits
: Cette méthode convertit une valeur décimale en un tableau de quatre entiers de 32 bits. Le troisième entier de ce tableau contient les informations d'échelle. BitConverter.GetBytes
: Convertit un entier proportionnel en tableau d'octets. [2]
: accède au troisième octet du tableau, qui indique l'échelle. count
: Stocke le nombre de décimales sous forme d'entier. Ainsi, cette méthode fournit des calculs précis de décimales pour toute valeur décimale, quelles que soient les différences culturelles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!