我有一个.Net应用程序,其中我输入了一些值,当我的区域设置为英语时输入0.21,但当我将其更改为法语设置时,数字转换为0,21,当我读取并将其转换为双我得到这个值为21而不是0.21
任何帮助将不胜感激
代码 dblWork = Convert.ToDouble(txtInput.Text)
答案 0 :(得分:1)
您似乎正在将数字转换为字符串。在这种情况下,应使用invariant culture,以便当前文化不会影响输出格式和数字的解析。
using System.Globalization;
// ...
var number = 0.23f;
var str = number.ToString(CultureInfo.InvariantCulture);
var number2 = float.Parse(str, CultureInfo.InvariantCulture);