2014-09-09 2 views
-1

나는 '0.11'와 같은 문자열 형식의 '하나의'데이터 형식의 숫자 또는 '0.11'또는 것입니다 C#에서 문자열 변수가 '12 .11 등10 진수를 나타내는 문자열에 "."문자 앞에 0이 있는지 확인하십시오.

내 질문 : 내가 패드에 필요 위의 변수에서 10 진수 앞에 숫자가 지정되지 않으면 앞에 '0'이 붙은 문자열 위. 어떻게 C#에서 가장 효율적인 방법으로이 작업을 수행 할 수 있습니까? 따라서 변수가 '12 .11 '이면 패딩이 필요 없습니다.

string newValue = null; 
string searchFieldValue1 = ".11"; 
//set new value according to this logic: pad it with a leading 0 so its 0.11 
+2

'싱글'로 들어간다면 정말로 패드를 붙여야할까요? 결국 Single로 구문 분석되면 어떤 차이도 없습니다. –

+0

클래스에서 ".11"을 "0.11"로 변환해야하는 로직이 있습니다. 단일 데이터 유형과 관련이 없지만 우연히도 단일 숫자의 문자열 표현입니다. – Sunil

답변

1
newValue = searchFieldValue1.StartsWith(".") 
       ? "0" + searchFieldValue1 
       : searchFieldValue1; 
1

첫 번째 문자가 '.' 경우 당신은 간단하게 테스트 할 수 있습니다

string searchFieldValue1 = ".11"; 
string newValue = searchFieldValue1; 
if (newValue[0] == '.') 
    newValue = "0" + newValue; 

또는 사용 conditional operator :

string searchFieldValue1 = ".11"; 
string newValue = (searchFieldValue1[0] == '.' ? "" : "0") + searchFieldValue1; 

그러나 아마도 가장 좋은 방법은 단순히 구문 분석하는 것입니다 문자열을 숫자로 변환 한 다음 올바른 형식으로 문자열로 다시 변환합니다 (0 123,147,대한 자세한)

string searchFieldValue1 = ".11"; 
string newValue = float.Parse(searchFieldValue1).ToString("0.00"); 

이 방법은 불필요한 앞에 0을 제거하고 그 결과는 소수점 이하 2 자리를 정확히 갖도록 (예를 들어 0011.00)

관련 문제