2013-02-25 3 views
5

doubleの値をstringに解析したい。私は自分の番号を指定した桁数(実行時までわからない)にしたい。この数字が桁数でゼロ以外の値で表現できる場合、これは私が望むものです。数字がこのように0になったら、私はそれを科学的表記で表現したい。必要な場合にのみ科学記法を使用する

値: 0.2367 出力: "0.23"

値: 0.00367 出力:

いくつかの例は、これがより明確になり、これは私が3桁の数字を望んでいたと仮定し"3.67E-3"

値: 22.3 出力: 「22.3」

値: 3364.0 出力:「3.36E3」

、ソリューションの周りの私の仕事はToString()方法とNnumeric format stringを使用することになり、それがゼロになり場合のはEフォーマット文字列に戻しますしかし、これは車輪を再発明するように感じる。誰かがこれを行うメソッドに組み込まれているかどうかを知っていますか?

+2

は、あなたが最初のもののために2.37E-1をしたいと思いませんか? –

+0

実際に私の好みは、すべての値が0だった場合にのみ科学記法を使用することですが、いずれの方法でも十分です。 – Fr33dan

答えて

14

General Number Format Specifierをご覧になりましたか?

一般的な(「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 
+0

私はどのように私がドキュメンテーションでこれを見落とすことができたのか分かりません。 – Fr33dan

関連する問題