2011-11-09 2 views
0

나는 대학 1 학년이며 우리는 C#을하고 있습니다. 섭씨와 화씨 사이에서 변환 할 수있는 Winforms 앱을 만들어야합니다. 모든 코드가 (기본적으로) 아래에 있지만 결과 출력을 레이블로 가져와야합니다. lblOutput = Output.ToString(); 레이블의 답을 보낼 수 있지만 "[입력] 섭씨는 화씨입니다."와 같은 메시지가 필요합니다. "ToString"다음에 괄호 사이에 넣으려고했지만 오류가 발생했습니다.문자열을 표시하는 코드

나는 이것을 제외하고는 다른 모든 코드가 있습니다. 나는 그것을 이해하기 위해 지난 며칠 동안 찾고 있었지만 대답을 찾을 수 없습니다. 어떤 도움이라도 대단히 감사합니다.

편집 :

설정 한 코드는 버튼 안에 표시됩니다. 나는 두 개의 라디오 버튼을 가지고 그 값이 텍스트 상자에 넣는다는 것을 멀리 -> Cels 또는 Cels -> Far라고합니다.

이것은 내 버튼으로 코딩 한 것입니다. 그것을 향상시킬 수있는 방법이 있으면 알려주십시오.

private void btnConvert_Click(object sender, EventArgs e) 
{ 
    decimal Input = Convert.ToDecimal(txtInput.Text); //grabs the input that the user entered 

    if (rbtnCelsius.Checked == true) //Test to see if the Celsius radio button is checked 
    { 
     decimal Output = ((Input - 32) * 5)/9; //If yes, it uses this formula to convert the input from Farenheit to Celsius 
     txtOutput.Text = Output.ToString(); //Outputs the message to the user, showing the Celsius end point 
    } 
    else //Says that the Celsius Radio Button is not checked, meaning that the Farenheit radio button is 
    { 
     decimal Output = (Input * 9)/5 + 32; //Moves onto this formula, converts Celsius to Farenheit 
     txtOutput.Text = Output.ToString(); //outputs the message to the user, showing the Farenheit end point 
    } 

    //txtOutput.Text = Output.ToString(); 
    //Commented out because it gives an error saying that "Output does not exist in current context" 
} 
+0

"WFA"가 "Windows Forms 응용 프로그램"이라고 가정합니다. –

+0

예. 나는 내 질문에 Windows Form Application을 명시했고, 다시 입력하는 것을 느낄 수 없었습니다. –

답변

0

당신은 {0} 또는 {1} 문자열, 또는 직접 사용할 수있는 문자열 연결과 같은 토큰을 대체 및 String.format를 사용할 수 있습니다. 숙제라고 했으므로 직접 답장을하지 않는 것이 좋지만,이 경우 C# 예제를 찾으려면 길을 찾을 수 있어야합니다.

+0

실제로 도움이됩니다. 전에 콘솔 응용 프로그램을 작성할 때 텍스트에 여러 변수를 추가하는 것에 대해 조금 혼란 스러웠습니다. 전에 "+ diameter +"와 같은 코드를 작성하여 값을 표시했습니다. {0}과 {1}로 쓰고 끝 부분에 변수를 추가하는 것이 더 쉬울 것 같습니다 (나는 그렇게 작동한다고 생각합니다). 솔직히, 프로그래밍은 내가 고군분투하는 유일한 수업입니다. 여기에 글을 쓰는 것은 나의 최후의 수단과 같았습니다 (저는 그것에 대해 선생님에게 이야기했습니다, 그러나 나는 이것에 대해 아직 물어 보지 않았습니다) –

+0

Programming 나도 쉽게 오지 않았고, 나는 프로그래밍 학위를 따냈다. 저는 이제 핵 기술자로서 소프트웨어 엔지니어로서 일하면서 계속 연습하고 있습니다. –

2
int fahrenheit, celsius; 
// your code to set the two variables 
string yourLabelText = String.Format("{0} Celcius is {1} Fahrenheit", celsius.ToString(), fahrenheit.ToString()); 

yourLabel.Text = yourLabelText; 

Here is a reference for String.Format(). (덕분에 Lukazoid!)

+0

다음은'String.Format'에 대한 MSDN 참고서입니다. http://msdn.microsoft.com/en-us/library /system.string.format.aspx – Lukazoid

+0

"yourLabelText"를 선언해야 할 부분입니까? 양식에 변수를 선언하는 데 문제가 있습니다 (사용되지 않는다고 알려줍니다).내가 작성한 코드를 보여주기 위해 원래 게시물을 편집했습니다. 또한 @Lukazoid는 도움이된다. 콘솔과 폼에서 코드를 표시하는 텍스트를 갖는 것은 조금 다르다. 필자는 콘솔 응용 프로그램을 작성하는 데 익숙해 졌으므로 Form에서 작동 시키려고 힘듭니다. –

+0

@MattMiller'yourLabelText'는 할당 된 것과 동일한 행에 선언됩니다. 당신은 그것을 꺼내서'yourLabel.Text = String.Format (.....')을 사용하면됩니다. 이해해 주시겠습니까? –

1

귀하의 질문에 대해 모르겠지만 당신이 당신이 할 수있는 설정 문구에 출력을 포맷 해야하는지.

private void btnConvert_Click(object sender, EventArgs e) 
{ 
    decimal Input = Convert.ToDecimal(txtInput.Text); //grabs the input that the user entered 
    // declare this outside the loop so you can use it later. 
    decimal output = 0M; 
    if (rbtnCelsius.Checked == true) //Test to see if the Celsius radio button is checked 
    { 
     output= ((Input - 32) * 5)/9; //If yes, it uses this formula to convert the input from Farenheit to Celsius 

    } 
    else //Says that the Celsius Radio Button is not checked, meaning that the Farenheit radio button is 
    { 
     output= (Input * 9)/5 + 32; //Moves onto this formula, converts Celsius to Farenheit 

    } 

    txtOutput.Text =string.Format("{0} Celsius will is {1} Fahrenheit",input,output); 
}` 

p.s. try parse 메소드를 사용하여 txtInput이 확실히 10 진수로 변환 될 수 있는지 확인하십시오.

+0

기본적으로 코드를 텍스트 상자에서 하나의 입력을 읽도록해야합니다. 두 개의 라디오 버튼이 있습니다. 하나는 화씨에서 화씨 수식을위한 선택이고, 다른 하나는 반대입니다. 가장 쉬운 방법은 IF 문에서 코딩하는 것이라고 생각했습니다. 조건은 섭씨로 전환하는 라디오 버튼이 선택되었는지 확인하는 것입니다. 'txtOutput.Text = String.Format (...'은 두 옵션 모두에 대해 표시해야합니다. 그래서 내가 계산 한 바로 다음에 코딩했기 때문에 Cel과 Far의 순서를 바꿔야합니다. 무엇이 출력되고 있습니까? –

1

당신이 걱정하지만, 일부 경우에 당신이 더 사용자 친화적이

처럼 만들 수 있도록 Output.ToString()를 호출하여 12.243333333 같은 것을 얻을 수 있는지 모르겠어요
Output.ToString("F2") 

12.24로 변경됩니다. 문자열과 함께 사용할 수 있습니다. 사람들이 제안했습니다.

+0

매우 도움이됩니다. 감사합니다. 36 Far to Cels을 "2.222222222222222222"로 변환하는 것이 싫었습니다. 그럴 수 있다는 것을 몰랐습니다. 괄호 안에 "F2" 두 자릿수까지? 매우 유용한 정보입니다. –

+2

예, ToString 메서드의 매개 변수입니다. 다른 것들도 많이 있습니다. MSDN [link]에 대한 자세한 내용을 볼 수 있습니다 (http://msdn.microsoft.com/ en-us/library/dwhawy9k.aspx) –

관련 문제