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?

Comment puis-je supprimer les zéros de fuite des numéros décimaux sans perdre de précision?

Susan Sarandon
Libérer: 2025-01-24 08:36:10
original
593 Les gens l'ont consulté

How Can I Remove Trailing Zeros from Decimal Numbers Without Losing Precision?

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal