5

double値を解析して。にしたいと思いstringます。自分の番号に指定された桁数を持たせたい(実行時までわからない)。この数がゼロ以外の桁数で表現できるのであれば、これが私が望むものです。このように数値がゼロになる場合は、科学的記数法で表現したいと思います。

いくつかの例でこれがより明確になります。これは、3桁が必要であると想定しています。

値: .2367出力: "0.23"

値: .00367出力: "3.67E-3"

値: 22.3出力: "22.3"

値: 3364.0出力:「3.36E3」

私の回避策は、ToString()メソッドとN 数値フォーマット文字列を使用し、結果としてゼロがフォーマット文字列に戻る場合Eですが、これは車輪の再発明のように感じます。これを行うための組み込みメソッドがあるかどうか誰かが知っていますか?

4

1 に答える 1

15

一般数値形式指定子の使用を見たことがありますか?

一般的な(「G」)形式の指定子は、数値のタイプと精度指定子が存在するかどうかに応じて、数値を固定小数点表記または科学的記数法の最もコンパクトなものに変換します。

ドキュメントからのいくつかのサンプル:

double number;

number = .0023;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays 0.0023

number = 1234;
Console.WriteLine(number.ToString("G2", CultureInfo.InvariantCulture));
// Displays 1.2E+03

number = Math.PI;
Console.WriteLine(number.ToString("G5", CultureInfo.InvariantCulture));
// Displays 3.1416 
于 2013-02-25T17:21:48.163 に答える