3

C#で簡単なプログラムを作成していますが、小数点として使用される文字に問題があります。今、私は使用する必要があります

でも使えるようになりたい

またはさらに良い、両方。

プログラム全体がハックであるため、短くて簡単な解決策を探しています。この1つの点を除いて、見栄えを良くする必要があるとは思えません。

問題のあるコードの1つを次に示します。

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 に答える