3

我正在用 C# 编写一个快速程序,但我遇到了将字符用作小数点的问题。现在,我需要使用

,

但我希望能够使用

.

甚至更好,两者兼而有之。

我正在寻找一些简短而简单的解决方案,因为整个程序是一个 hack,我怀疑,除了这一点,我是否需要让它看起来更好。

这是有问题的代码之一:

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 进行转换。有没有更好的方法来做到这一点?如果可能的话,我还想避免遍历字符串并寻找点和逗号并手动修复它们。

我也有一种感觉,这个问题与我系统上的语言环境设置有关,但我现在不想改变它。

4

2 回答 2

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);
于 2011-01-19T02:39:09.887 回答
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);
于 2014-04-10T08:09:00.847 回答