2016-11-16 4 views
0

에 문자열로 변환하는 방법 :C#에서 문제 (VS 커뮤니티 2015 년 작업) 다음과 같은 하나의 지능

첫째로, 나는 상당히 새로운 C에 #, 그래서 그 문제는 쉽게 해결 될 경우 실례합니다.

나는 접촉 센서를 통해 숫자의 문자열을 제공합니다 (길이 측정). 나는 SystemPort Methods를 사용하여 그것들을 읽은 다음, 문자열의 시작 부분에 "SR00002"가 쓸모가 없다.

결국 나는 "000.3422"또는 "012.2345"와 같은 문자열로 끝납니다. 이제 그 문자열을 하나의 솔리드 int-variable로 변환하려고합니다. 즉, from과 from을 뺍니다.

BSP : 나는 012.234 계산할 - 000.3422

은 이미 구문 분석 및 ConvertToInt (문자열을 반복하면서)하지만 endresult는 항상 문자열 시도 (대신 또는,하지만 난 사전에 있음을 변경할 수 있습니다.) .

string b = serialPort2.ReadLine(); 
    string[] b1 = Regex.Split(b, "SR,00,002,"); 
    string b2 = b1[1].Substring(1); 
    foreach (char c in b2) 
    { 
     Convert.ToInt32(c); 
    }     
    textBox2.Text = b2 + b2.GetType(); 

b2가 int 일 때 텍스트 상자에는 인쇄 할 수 없지만 나중에 처리하는 것이 좋습니다. 모든 것이 적절하게 변환 될 때

는 병

GetType을 그냥 테스트 용이며) = 자신의 방법으로 변환 아웃소싱 (내가 원하는 해달라고한다) 쇼는 선택 System.String 말했듯이. 도움이 많이 주어졌습니다. 나는 또한 searchfunction과 google을 찾았지만 couldnt는 도움을 찾는다. 나는 가능한 조력자들에게 좋은 날을 보내고 싶다.

+0

당신은'double''에'string' 변환해야 'decimal' 또는'float' ..'decimal.Parse'와'decimal.TryParse'를보세요 https://msdn.microsoft.com/en-us/library/system.decimal.parse(v=vs) .110) .aspx 및 https://msdn.microsoft.com/en-us/library/9zbda557(v=vs.110).aspx (다른 숫자 형식에 대해서도이 작업을 수행 할 수 있음) – KMoussa

+0

b2는 문자열이므로 y2.b2.GetType을 사용하면 결과 문자열에 나타납니다. 문자열을 변환하지만 반환 된 문자열을 선언하지 않습니다. ToInt32();의 teger –

+0

빠른 답변을 보내 주셔서 감사합니다. 나는 십진법을 시도했다. 그것은 처음에는 0을 자르지 만 회고에서는 실제로 이런 식으로 센서가 읽는 신호의 양을 얻습니다. 이것은 기본적으로 내가 필요로하는 것입니다 =) –

답변

0

은 int.Parse

int.Parse을 사용 ("123")

+0

은 다음과 같이 작업했습니다. 십진수 b3 = decimal.Parse (b1 [1]); 슬프게도 소수점을 등록하지 않고 하나의 큰 숫자를 표시하지만이 분석 메서드가 제공하는 숫자로 작동 할 수도 있습니다. 센서가 수행하는 판독 값의 수를 표시하기 때문입니다. –

0

int 또는 원하는 다른 숫자 값을 사용하는 새로운 변수 또는 배열에 변환 된 값을 할당해야합니다. 그런 다음 소수점을 유지하려면

int[] numbers = new int[b1.length]; 
for(int i = 0; i < b2.length; i++) 
    { 
     numbers[i] = Convert.ToInt32(b2[i]); 
    } 
+0

답에 감사드립니다. 불확실한 시도는 저것으로 주변에 시도하십시오. 하지만이 방법은 10 진수를 없애지 않고 솔리드 플로트/십진수 대신 숫자를 배열에 제공합니다 (제공된 솔루션에서). 나 자신을 처음에는 약간 나쁘게 표현했을지 모르지만, int가 아니라 오히려 단호한 숫자가 =로 계산할 수 있습니다.) –

+0

@ Chrisoph-Poser 아, 죄송합니다. 해결책을 찾았습니다. 예. 필요에 따라'int'를'double','decimal' 또는'float'로 대체 할 수 있습니다 만,이 경우에는'float'을 사용합니다. – CrimsonSage