Maison >développement back-end >C++ >Comment puis-je supprimer les zéros de fuite des numéros décimaux sans perdre de précision?
Retirer efficacement les zéros de fuite des décimales: une approche préservante de précision
De nombreux ensembles de données incluent des nombres décimaux avec des zéros de fin, un impact sur la présentation des données. Cet article montre comment supprimer ces zéros sans compromettre la précision numérique.
simplement utiliser String.Format("N0")
est insuffisant, car il arrond les nombres, altérant potentiellement l'intégrité des données.
Une méthode supérieure utilise Decimal.GetBits()
, accédant à la structure de bits sous-jacente de la décimale. La division de la décimale par la constante 1.000000000000000000000000000000000m
modifie l'exposant, en supprimant efficacement les zéros de fuite superflus.
Cette technique est facilement implémentée à l'aide d'une méthode d'extension:
<code class="language-csharp">public static decimal Normalize(this decimal value) { return value / 1.000000000000000000000000000000000m; }</code>
Appliquer .ToString()
à la décimale normalisée donne une représentation de chaîne sans zéros de fuite, tout en conservant la précision numérique d'origine. Par exemple:
<code class="language-csharp">1.200m.Normalize().ToString(); // Returns "1.2"</code>
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!