このような文字列があり、それを double に変換したい。
string x = "65.50";
double y = Convert.ToDouble(x);
しかし、結果は 6550.0 です
65.50にしたいです。
ASP.NET と C# を使用しています。グローバル化の問題だと思います。
これは私の質問です、申し訳ありません(:
このような文字列があり、それを double に変換したい。
string x = "65.50";
double y = Convert.ToDouble(x);
しかし、結果は 6550.0 です
65.50にしたいです。
ASP.NET と C# を使用しています。グローバル化の問題だと思います。
これは私の質問です、申し訳ありません(:
はい、このように変換するのはあなたの現在の文化です。CultureInfo.InvariantCulture
を使用して、文化の使用をスキップできます。
double d = double.Parse("65.50", CultureInfo.InvariantCulture);
65.50にしたいです。
文字列に変換したい場合:
string str = d.ToString("N2", CultureInfo.InvariantCulture);
小数点以下の桁数を保持しているため、これは通貨であると思います。decimal
次に、代わりに使用する必要があります。
decimal dec = decimal.Parse("65.50", CultureInfo.InvariantCulture); // 65.5
これで使用できるようdecimal.ToString
になり、小数点以下の桁数が自動的に復元されます。
string str = dec.ToString(CultureInfo.InvariantCulture); // "65.50"
これを試して:
var res = Double.Parse("65.50", NumberStyles.Float, CultureInfo.InvariantCulture);
.
フローティングセパレーターがある文化でそれを解析します
ここで試すことができます: http://ideone.com/3LMVqa