科学表記法を回避した、.NET での正確な倍精度浮動小数点から文字列への変換
.NET で倍精度浮動小数点数を浮動小数点文字列表現に変換すると、特に大きい数値と小さい数値の科学表記を効果的に抑制するソリューションを探す場合に、課題が生じる可能性があります。
1 つの方法は、小数点以下の希望の精度を指定するカスタム書式文字列を使用することです。考えられるすべての倍精度浮動小数点値を正確に表現するには、多数の数値が必要です。この要件に対する一般的な解決策は次のとおりです:
<code class="language-csharp">doubleValue.ToString("0." + new string('#', 339))</code>
このフォーマット文字列には 339 個のポンド文字 ('#') が含まれており、指数 (324 ビット) によって右にシフトできるゼロ以外の小数点以下の最大桁数 (15) を表します。
ToString() は明示的に丸められる可能性があるため、このメソッドは可逆変換ではなく精度を提供することに注意することが重要です。ロスレス往復変換の場合は、@Loathing が提供する代替ソリューションを検討してください。
使いやすさとパフォーマンスを向上させるために、フォーマット文字列を定数として保存できます。
<code class="language-csharp">public static class FormatStrings { public const string DoubleFixedPoint = "0.###################################################################################################################################################################################################################################################################################################################################################"; }</code>
この技術を使用すると、科学表記法を使用せずに倍精度浮動小数点数を文字列表現に簡単に変換でき、アプリケーションで大きい数値と小さい数値を正確に表示できるようになります。
以上が科学表記法を使用せずに .NET で double を文字列に正確に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。