2015-01-16 1 views
-2

0001의 값을 0002로 증가 시키려고합니다. 정수를 시도했지만이를 2로 반올림합니다. 또한 부동 소수점을 추가하려고했습니다. 동일한 효과 :선행 0을 유지하면서 숫자의 문자열 표현을 증가 시키십시오.

float newInt = float.Parse("0001") + float.Parse("0001"); 

숫자를 0001로 지정하면 어떻게됩니까?

+5

증가를 찢어 텐데 재미 (단순한 추가 사용을 말할 수), 그리고 나서'ToString()'을 사용하거나 원하는대로 포맷팅하십시오. –

+4

'0001'은 숫자가 아닙니다. 그것은 문자열입니다. 숫자 앞에 0이 없습니다. 정수로 파싱하여 '0001'을 증가시키고 증분 한 다음 선행 제로를 제공하는 형식의 문자열로 다시 변환합니다. –

+2

@Ken, 공정성 있음, '0001' _은 C#의 숫자이지만,'1 '과 다를 바 없습니다. 나는 당신이 ""0001 "'을 의미한다고 가정하고 있습니다. – paxdiablo

답변

6

값과 서식을 으로 구분하고을 서로 (a)으로 구분해야합니다. 당신이 폭 사로 표시 할 때

단순히 같은 것을 사용, 0으로 채워 왼쪽, 정수 변수를 유지하고 :

다음과 같은 완전한 프로그램에 따라
String sNum = num.ToString("D4"); 

:

using System; 

namespace test { 
    class Program { 
     static void Main(string[] args) { 
      int x = 8; 
      x++; Console.WriteLine(x.ToString("D4")); 
      x++; Console.WriteLine(x.ToString("D4")); 
      x++; Console.WriteLine(x.ToString("D4")); 
      Console.ReadLine(); // just because I'm in the IDE. 
     } 
    } 
} 

하는 출력 :

0009 
0010 
0011 

,

(가) 당신은 확실히 당신은 같은 뭔가, 무엇을 물어을 할 수 :

using System; 

namespace test { 
    class Program { 
     static void Main(string[] args) { 
      String s = "0008"; 
      s = (Int32.Parse(s) + 1).ToString("D4"); Console.WriteLine(s); 
      s = (Int32.Parse(s) + 1).ToString("D4"); Console.WriteLine(s); 
      s = (Int32.Parse(s) + 1).ToString("D4"); Console.WriteLine(s); 
      Console.ReadLine(); 
     } 
    } 
} 

하지만 지속적으로 정수로 다시 문자열로 변환하는 것은 뒤쪽으로 그것을 증가하는 것을 알고 있어야합니다 문자열을 표시하려면 불필요하게 비효율적입니다. 내 부하 중 하나가 검토를 위해 나에게 그 코드를 구입 한 경우, 음, 난 당신이 내가 숫자로 떨어져 :-)

-2
String sNum = num.ToString("0000"); 
관련 문제