2014-06-14 2 views
0

aC# windows 양식 응용 프로그램에서 작업 할 때 자동으로 텍스트 서식 값을 서식 지정해야합니다. 즉, 마지막 숫자를 0으로 만들고 싶습니다. 현재는 자동 서식을 처리하고 있습니다. 내가 예를 들어 값 "1257.00"이 그것은 1250.00 형식이어야를 입력 할 때이 완벽하게 작동하고자동 서식이 지정된 숫자 문자열

double value; 
if (double.TryParse(textBox1.Text, out value)) 
{ 
    textBox1.Text = String.Format("{0:0.##}", value); 
} 

사용하여 내 소수점, 내 문제입니다. 여기에 갇혀서 완전한 연구를했지만 솔루션을 찾을 수 없어 최대한 빨리 도와주세요.

+0

그리고 1257.57을 입력하면 결과가 어떻게됩니까? 1250.57 또는 1250.00입니까? – dotnetom

+0

1250.00이어야합니다. – Xeroth

+0

어때요? 'double d = 1257.00; d = d - d % 10;' –

답변

0

나는이 신속하고 더러운 솔루션 게시 (콘솔 버전을하지만, 코어 로직뿐만 아니라 윈폼 응용 프로그램에서 동일하게 작동합니다)이 바이올린에 게시 :

https://dotnetfiddle.net/yvK9Ef

돌출하는 점 : 당신을 수동으로 마지막 숫자를 줄여야 "." 0으로 이를 위해, substring 함수 문자열을 사용하고 0을 추가하여 마지막 자리를 제외한 모든 것을 선택해야합니다. 나는 이것이 우아하지 않다는 것에 동의하지만 작동한다. 마지막 숫자 이외에 모든 것을 얻을 때까지 나누고 modding하는 산술 방식을 택할 수도있다.

string number = "1257.00"; 
    double value = 0.00; 
    if (double.TryParse(number, out value)) 
    { 
     string roundedNumber = number.Substring(0, (number.IndexOf('.') > 0 ? number.IndexOf('.') : number.Length)-1) + "0"; 
     if (double.TryParse(roundedNumber, out value)) 
     { 
      Console.WriteLine(String.Format("{0:0.##}", value)); 
     } 
     else 
     { 
      Console.WriteLine("Error!"); 
     } 
    } 
    else 
    { 
     Console.WriteLine("Error!"); 
    } 
+0

어떤 식 으로든 아직 포맷이 동일하지 않다. 이 코드를 창에 다시 쓰는 동안 어디서 실수를했는지 모르겠습니다. – Xeroth

+0

코드를 게시 할 수 있습니까? 위에 제공된 링크로 가면 Line # 7 ("number"변수의 값)에서 값을 변경하고 지정한 내용에 따라 출력 변경 사항을 볼 수 있습니다. –

+0

예, 완벽하게 작동합니다. 늦어서 미안해, 나갔다. 지금 막 시도했다. – Xeroth

관련 문제