2011-01-19 1 views
3

C#에서 빠른 프로그램을 만들고 있는데 소수점으로 사용 된 문자에 문제가 있습니다. 지금, 나는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(); 

     } 

와 난 그냥 그것으로 계산 한 데 필요한 공식을 plaed :

여기에 코드의 문제가있는 부분 중 하나입니다. 보시다시피, 지금 저는 Convert.ToDouble을 사용하여 변환하고 있습니다. 더 좋은 방법이 있습니까? 가능하다면 문자열을 통과하지 않고 점과 쉼표를 찾아서 손으로 고정하는 것도 좋을 것입니다.

또한 문제가 내 시스템의 로케일 설정과 관련되어 있다는 느낌이 들지만, 지금은 변경하지 않을 것입니다. 쉼표를 들어

답변

3

, 당신의 마지막 줄에 변경 :

textBox5.Text = T.ToString(CultureInfo.InvariantCulture.NumberFormat); 
// or use any "normal" country 

그리고 역을 (텍스트 상자에 원래 값을 구문 분석)을 다음 기간 동안

textBox5.Text = T.ToString(CultureInfo.GetCultureInfo("de-DE").NumberFormat); 

를, 이것을 사용 기간 동안이

double d = double.Parse(textBox5.Text, CultureInfo.GetCultureInfo("de-DE").NumberFormat); 

: 그리고, 쉼표에 대해이 작업을 수행

double d = double.Parse(textBox5.Text, CultureInfo.InvariantCulture.NumberFormat); 
+0

사실, Convert.ToDouble을 사용하면됩니다. 어떻게 사용합니까? – AndrejaKo

+1

나는 그저 그걸 얻었습니다. :)'Double.parse' 대신에'Convert.ToDouble'을 사용합니다. – MusiGenesis

+2

사용자가 숫자를 입력하는 방법을 모를 경우를 대비하여 여러 개의'double.tryParse' 호출을 사용할 수도 있습니다. – MusiGenesis

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); 
관련 문제