我正在用C#编写一个快速程序,我的字符用作小数点有问题。现在,我需要使用
,
但我希望能够使用
。
甚至更好,两者兼而有之。
我正在寻找一些简单易用的解决方案,因为整个程序都是黑客,我怀疑,除了这一点,我需要让它看起来更好。
这是一段有问题的代码:
private void button2_Click(object sender, EventArgs e)
{
double Ri, B, R, T;
Ri = Convert.ToDouble(textBox2.Text);
B = Convert.ToDouble(textBox3.Text);
R = Convert.ToDouble(textBox6.Text);
T = B / Math.Log(R*1000 / Ri, Math.Exp(1)) - 273.15;
textBox5.Text = T.ToString();
}
我正在使用自动生成的按钮,我只是计算了我需要计算的公式。如您所见,现在我正在使用Convert.ToDouble进行转换。有没有更好的方法呢?如果可能的话,我也希望避免通过字符串并寻找点和逗号并手动修复它们。
我也有一种感觉,问题与我系统上的区域设置有关,但我现在不想改变它。
答案 0 :(得分:3)
对于逗号,请将最后一行更改为:
textBox5.Text = T.ToString(CultureInfo.GetCultureInfo("de-DE").NumberFormat);
在此期间,请使用:
textBox5.Text = T.ToString(CultureInfo.InvariantCulture.NumberFormat);
// or use any "normal" country
要反过来(解析文本框中的原始值),请为逗号执行此操作:
double d = double.Parse(textBox5.Text, CultureInfo.GetCultureInfo("de-DE").NumberFormat);
这期间:
double d = double.Parse(textBox5.Text, CultureInfo.InvariantCulture.NumberFormat);
答案 1 :(得分:0)
float Ri, B, R, T;
Ri = float.Parse((String.Format("{0:0.00}",textBox2.Text)));
B = float.Parse((String.Format("{0:0.00}",textBox3.Text))));
R = float.Parse((String.Format("{0:0.00}", textBox6.Text)));
T = B / Math.Log(R * 1000 / Ri, Math.Exp(1)) - 273.15;
textBox5.Text = String.Format("{0:0.00}",T);