我开发Winform应用程序,我需要此问题的帮助。当我插入值为33.5的textBoxt时,我将textBox上的值保存到程序中的double变量中,但是将textBox转换为double后,变量中的值为335而不是33.5,这是我的代码
private void btntambahMUN_Click(object sender, EventArgs e)
{
if (txtmat.Text == "")
{
errorProvider1.Clear();
errorProvider1.SetError(txtmat, "Masukkan Nilai Matematika");
}
else if (txtipa.Text == "")
{
errorProvider1.Clear();
errorProvider1.SetError(txtipa, "Masukkan Nilai IPA");
}
else if (txtips.Text == "")
{
errorProvider1.Clear();
errorProvider1.SetError(txtips, "Masukkan Nilai IPS");
}
else if (txtbind.Text == "")
{
errorProvider1.Clear();
errorProvider1.SetError(txtbind, "Masukkan Nilai Bahasa Indonesia");
}
else if (txtbing.Text == "")
{
errorProvider1.Clear();
errorProvider1.SetError(txtbing, "Masukkan Nilai Bahasa Inggris");
}
else
{
/* try
{
con.Open();
MySqlCommand cmd = new MySqlCommand("INSERT INTO datanilaiujian(UserID,Matematika,IPA,IPS,BIND,BING) VALUES(@a,@b,@c,@d,@e,@f)", con);
cmd.Parameters.AddWithValue("@a",txtuseridMUN.Text.Trim());
cmd.Parameters.AddWithValue("@b",txtmat.Text.Trim());
cmd.Parameters.AddWithValue("@c",txtipa.Text.Trim());
cmd.Parameters.AddWithValue("@d",txtips.Text.Trim());
cmd.Parameters.AddWithValue("@e",txtbind.Text.Trim());
cmd.Parameters.AddWithValue("@f",txtbing.Text.Trim());
cmd.ExecuteNonQuery();
con.Close();
updatestatusUN();
hitungrata();
refreshMUN();
showallgridview();
}
catch (Exception ex)
{
con.Close();
RadMessageBox.Show(ex.Message.ToString());
}*/
float coba = float.Parse(txtmat.Text);
RadMessageBox.Show(coba.ToString());
}
}
有什么办法吗?
您当前的区域性和NumberDecimalSeparator可能存在问题。
尝试使用InvariantCulture进行解析:
float coba = float.Parse(txtmat.Text, CultureInfo.InvariantCulture);
可以在C#float.Parse String中找到非常相似的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句