2

私はダブルを持っています、そして私はそれを次のように文字列に変更したいと思います:

double value;
string myString = value.toString();

値がポイントから4桁未満の数値の場合、正常に機能します。たとえば、値が0の場合、myStringは0になります。値が0.01の場合、myStringは0.01になります。

ただし、値がポイントの後に4桁以上ある場合、myStringは浮動小数点を使用して作成されます(たとえば、1E-05)。

myStringを、ポイント以降の任意の桁数に対して0.0000000Xの形式で作成し、1E-0Xメソッドを使用しないようにします。また、myStringをできるだけ短くしたいと思います。たとえば、値が0の場合、myStringを0(0.000000ではなく)にします。

どうすればいいですか?ありがとう

4

3 に答える 3

4

必要な処理を実行する標準の数値形式の文字列があるかどうかはわかりませんが、カスタムの文字列を使用できます。

double d = 0.0000003;
Console.WriteLine(d.ToString("0.#################"));

ただし、指定した値を超える有効数字が含まれる値を処理できるとは思いません。ハッシュの数を増やしても、たとえば3e-20などの数には役立ちません。それはあなたにとって問題ですか?

doubleではなくを使用しているため、算術演算後にサプライズが発生する場合があることに注意してくださいdecimal...正確な桁が非常に重要な値を保持しようとしている場合は、decimal代わりに使用する必要があります。

于 2012-12-12T07:35:25.550 に答える
0

フォーマット文字列を引数として受け入れるdouble.ToStringオーバーロードの1つを使用します。

標準の数値形式の文字列カスタムの数値形式の文字列に関する情報を確認して、目的の形式の指定について学習してください。

于 2012-12-12T07:33:35.177 に答える
-1

Double.ToString()のmsdnページは、それをかなりよく説明しています。

string myString = value.ToString("R");

仕事をします。

于 2012-12-12T07:37:20.840 に答える