質問:
科学表記法を使用せずに、.NET Framework で倍精度浮動小数点数を浮動小数点文字列表現に変換するにはどうすればよいですか?これは、標準の数値形式から外れる極端に大きい数値や小さい数値にも当てはまります。
解決策:
信頼性が高く効率的な方法は、次の形式文字列を利用することです。これにより、非常に大きいまたは小さい double 値であってもすべての有効数字が保持されます。
<code class="language-csharp">doubleValue.ToString("0." + new string('#', 339))</code>
手順:
このフォーマット文字列には次のものが含まれます:
0.
: 小数点の区切り文字を指定します。 #
: 有効な数字のプレースホルダー。 339
: 小数点以下のプレースホルダーの数。 この形式が機能する理由を理解するには、浮動小数点数の範囲と精度を考慮することが重要です。倍精度浮動小数点数におけるゼロ以外の 10 進数の最大数は 15 で、指数はこれらの数値を右に最大 324 ビットシフトできます。多数のプレースホルダー数値 (339) を提供することで、すべての有効数字が四捨五入や科学的表記なしで表示されるようになります。
利点:
ヒント:
便宜上、使用を簡素化するために定数フォーマット文字列を作成できます。
<code class="language-csharp">public static class FormatStrings { public const string DoubleFixedPoint = "0.###################################################################################################################################################################################################################################################################################################################################################"; }</code>
以上が.NET で科学表記法を使用せずに Double を浮動小数点文字列に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。