1

私は以下のコードを使用しています:

string.Format("{0:###,###,###,###,###.00}",12005557590928.143);

double値を文字列に変換します。

「12,005,557,590,928.10」として出力されます

に変更すると

string.Format("{0:###,###,###,###,###.##}",12005557590928.143);

わかります。「12,005,557,590,928.1」。

「12005557590928.143」として出力を取得するにはどうすればよいですか?

4

5 に答える 5

3

数値に使用しているデータ型が原因で、精度エラーが発生しています。固定小数点数タイプ(この場合はa decimal)を使用してみてください。

string.Format("{0:###,###,###,###,###.###}", 12005557590928.143m);
于 2013-01-09T15:48:07.600 に答える
1

私はあなたが欲しいと信じていますstring.Format("{0:###,###,###,###,###.000}",12005557590928.143); (最後に余分なゼロがあることに注意してください)

于 2013-01-09T15:45:52.943 に答える
1

使用できます

(12005557590928.143).ToString("R")

カスタム数値形式の文字列では、。の10進数が15桁を超えることはありませんSystem.DoubleSystem.Decimalより高い精度が必要な場合は、使用を検討してください。

の「隠された」数字を明らかにすることが目標である場合はDouble標準の数値形式の文字列"R"(「ラウンドトリップ」)または"G17"(「一般的な」17桁)を使用します。

于 2013-01-09T15:46:58.793 に答える
1

で試してみてください.ToString("R")

Console.WriteLine((12005557590928.143).ToString("R"));

これがDEMOです。

于 2013-01-09T15:47:54.197 に答える
1
Console.Write(string.Format("{0:0.000}", (12005557590928.143m)));
于 2013-01-09T15:57:58.017 に答える