紧急求助:多国语言问题,Convert.ToDouble()出错
目前有三种语言,当用中文,英文登录的时候没有错,当用法文登录的时候,这句话出错:Convert.ToDouble(lblPrice.Text.Trim()),错误是字符串格式不正确,但即使我用一个常量Convert.ToDouble("1")也会出错。
我的代码如下:
public partial class Test : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnTest_Click(object sender, EventArgs e)
{
txtPrice.Text = "*";
}
protected void txtCertainValue_TextChanged(object sender, EventArgs e)
{
txtPrice.Text = Convert.ToString(Math.Round(Convert.ToDecimal(lblPrice.Text.Trim()) + Convert.ToDecimal(txtCertainValue.Text.Trim()), 2));
}
protected void txtRate_TextChanged(object sender, EventArgs e)
{
txtPrice.Text = Convert.ToString(Math.Round(Convert.ToDouble(lblPrice.Text.Trim()) * Convert.ToDouble(string.Format("1.0{0}", txtRate.Text.Trim())), 2));
//txtPrice.Text = Convert.ToString(Math.Round(Convert.ToDouble(lblPrice.Text.Trim()) * Convert.ToDouble(1+Convert.ToDouble(txtRate.Text.Trim())/100), 2));
}
PageBase:做了关于Culture的处理。
protected override void InitializeCulture()
{
string currentCultureID = "";
if (Session["CultureID"] != null)
{
currentCultureID = Session["CultureID"].ToString();
}
string strCurrentCulture = ConfigurationSettings.AppSettings["DefaultCulture"].ToString();
if (currentCultureID == "1")
{
strCurrentCulture = "zh-CN";
}
else if (currentCultureID == "2")
{
strCurrentCulture = "en-US";
}
else
{
strCurrentCulture = "fr-FR";
}
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(strCurrentCulture);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(strCurrentCulture);
}