Maison >développement back-end >C++ >Comment puis-je supprimer efficacement les zéros de fuite des nombres décimaux en C #?

Comment puis-je supprimer efficacement les zéros de fuite des nombres décimaux en C #?

Susan Sarandon
Susan Sarandonoriginal
2025-01-24 08:57:10209parcourir

How Can I Efficiently Remove Trailing Zeros from Decimal Numbers in C#?

Suppression des zéros à droite des décimales C# : une solution propre

Le formatage des nombres décimaux pour éliminer les zéros à droite peut être délicat. Un récent défi de programmation a mis en évidence la nécessité d'une solution robuste qui évite les arrondis indésirables.

Le défi :

La tâche consistait à supprimer les zéros à droite des décimales comme celles-ci :

<code>2.4200
2.0044
2.0000</code>

Le résultat souhaité était :

<code>2.42
2.0044
2</code>

Les méthodes standards comme String.Format se sont révélées inadéquates, soit en préservant les zéros, soit en introduisant des erreurs d'arrondi.

La solution élégante :

La solution exploite la structure interne du type decimal. Une méthode d'extension fournit un moyen propre de normaliser la valeur décimale :

<code class="language-csharp">public static decimal Normalize(this decimal value)
{
    return value / 1.000000000000000000000000000000000m;
}</code>

La division par cette constante spécifique ajuste efficacement l'exposant décimal, supprimant les zéros inutiles. L'appel de ToString() sur la décimale normalisée donne alors le résultat souhaité.

Exemple :

<code class="language-csharp">1.200m.Normalize().ToString(); // Output: 1.2</code>

Cette approche offre une méthode concise et précise pour supprimer les zéros de fin, fournissant une solution pratique pour la gestion des décimales C#.

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!

Déclaration:
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