この方法でdoubleをstringに変換しています。一部のマシンでは区切り文字として使用され、別のマシンでは使用されmyDouble.ToString("0.0000000000000000")
ていることに気付きました。これはWindowsの地域設定に依存すると思います。.
,
,
(現在の地域設定に関係なく)常に区切り文字として期待される別のプログラムで出力を使用します。,
したがって、c#で、地域の設定を無視して常に使用するように強制したいと思います。どうやってするか?
この方法でdoubleをstringに変換しています。一部のマシンでは区切り文字として使用され、別のマシンでは使用されmyDouble.ToString("0.0000000000000000")
ていることに気付きました。これはWindowsの地域設定に依存すると思います。.
,
,
(現在の地域設定に関係なく)常に区切り文字として期待される別のプログラムで出力を使用します。,
したがって、c#で、地域の設定を無視して常に使用するように強制したいと思います。どうやってするか?
カスタムを使用できますNumberFormatInfo
:
var nfi = new NumberFormatInfo();
nfi.NumberDecimalSeparator = ",";
var myDouble = 10.156d;
Console.WriteLine(myDouble.ToString("0.0000000000000000", nfi));
このように作成すると、「不変」のフォーマット情報が拡張されます。
上記のコード10,1560000000000000
はコンソールに出力されます。
2番目のパラメーターとしてフィッティングCultureInfoを渡します。
たとえば、
myDouble.ToString("0.0000000000000000", new CultureInfo("de-DE"))
常に「、」で印刷されます(ドイツではこのようになっています)。
カルチャ情報パラメータを使用して、どの地域設定を使用するかを宣言します。データの保存とマシンの出力には、常にCultureInfo.InvariantCultureを使用する必要があります。
に設定Thread.CurrentThread.CurrentUICulture
および/または.CurrentCultureを試すことができCultureInfo("de-DE")
ます。