0

この方法でdoubleをstringに変換しています。一部のマシンでは区切り文字として使用され、別のマシンでは使用されmyDouble.ToString("0.0000000000000000")ていることに気付きました。これはWindowsの地域設定に依存すると思います。.,

,(現在の地域設定に関係なく)常に区切り文字として期待される別のプログラムで出力を使用します。,したがって、c#で、地域の設定を無視して常に使用するように強制したいと思います。どうやってするか?

4

3 に答える 3

3

カスタムを使用できますNumberFormatInfo

var nfi = new NumberFormatInfo();
nfi.NumberDecimalSeparator = ",";
var myDouble = 10.156d;
Console.WriteLine(myDouble.ToString("0.0000000000000000", nfi));

このように作成すると、「不変」のフォーマット情報が拡張されます。

上記のコード10,1560000000000000はコンソールに出力されます。

于 2012-07-26T09:33:33.323 に答える
2

2番目のパラメーターとしてフィッティングCultureInfoを渡します。

たとえば、

myDouble.ToString("0.0000000000000000", new CultureInfo("de-DE"))

常に「、」で印刷されます(ドイツではこのようになっています)。

カルチャ情報パラメータを使用して、どの地域設定を使用するかを宣言します。データの保存とマシンの出力には、常にCultureInfo.InvariantCultureを使用する必要があります。

于 2012-07-26T09:29:29.303 に答える
0

に設定Thread.CurrentThread.CurrentUICultureおよび/または.CurrentCultureを試すことができCultureInfo("de-DE")ます。

于 2012-07-26T09:32:23.797 に答える