ホームページ > バックエンド開発 > C++ > 精度を落とさずに 10 進数から末尾のゼロを削除するにはどうすればよいですか?

精度を落とさずに 10 進数から末尾のゼロを削除するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-24 08:36:10
オリジナル
593 人が閲覧しました

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

小数から後続のゼロを効率的に除去する:精密に浸すアプローチ

多くのデータセットには、ゼロの後の10進数が含まれており、データの表示に影響を与えます。この記事では、数値の精度を損なうことなくこれらのゼロを削除する方法を示しています。

単に

を使用することは不十分です。数値を丸め、データの整合性を潜在的に変更する可能性があります。 String.Format("N0")優れたメソッドは、小数の基礎となるビット構造にアクセスし、

を使用します。 小数を定数で除算するは指数を変更し、効果的に余分なトレーリングゼロを削除します。

この手法は、拡張法を使用して簡単に実装されます:Decimal.GetBits() 1.000000000000000000000000000000000m

を正規化された小数に適用すると、元の数値精度を維持しながら、ゼロを追跡することなく文字列表現が生成されます。 たとえば、

<code class="language-csharp">public static decimal Normalize(this decimal value)
{
    return value / 1.000000000000000000000000000000000m;
}</code>
ログイン後にコピー

以上が精度を落とさずに 10 進数から末尾のゼロを削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート