Creative Commons License

Microsoft .NET

닷넷!시작하기
닷넷! Ver 2.0~
닷넷!스킬업
웹개발
윈폼개발
실용모듈개발
Tip & Tech
하루 한 문법

Microsoft .NET 개발자들을 위한 공간입니다. 기초강의에서 부터 고급 기술 정보 및 팁등을 다루도록 하겠습니다.

.

닷넷!시작하기

Microsoft. NET 을 시작하는 분들을 위한 강좌입니다. 주로 기초적인 내용과 때론 기본적인 내용을 다룹니다

Conversion 클래스

작성자 : 박종명
최초 작성일 : 2009-07-01 (수요일)
최종 수정일 : 2009-07-01 (수요일)
조회 수 : 3754

하루 한 문법 세번째 시간입니다

이번에는 다양한 변환 작업을 수행하는 이전 Visual Basic 모듈인 Conversion 클래스에 대해 알아봅니다

* Conversion 클래스

우선 이 클래스는 Microsoft.VisualBasic.dll 에 정의되어 있습니다. 네임스페이스 역시 Microsoft.VisualBasic 입니다
즉 이전 비주얼베이직의 모듈을 C#에서 사용할 수 있게 지원하는 것입니다

Microsoft.VisualBasic.dll 은 기본으로 어셈블리 참조되어 있지 않기 때문에 Conversion 클래스를 사용하기 위해서는
이 어셈블리를 참조해야 합니다



그럼 이제 Conversion 클래스의 유용한 몇 가지 기능을 살펴 보겠습니다

1. Conversion.Val 메서드
Conversion 클래스의 정적 메서드인 Val 메서드는 문자열에 포함된 숫자 영역을 반환해 줍니다

다음 코드를 보죠
double result = Conversion.Val("12 3\t4\r\n5");
결과는 12345 숫자를 반환해 줍니다

중간에 있는 공백문자, 탭문자, 줄바꿈문자는 자동으로 제거되고 유효한 숫자인 12345을 반환받을 수 있습니다
만일 사용자로부터 입력 받는 값에 숫자 이외의 이러한 문자가 중간중간에 있을 경우 한방에 숫자만 빼오고 싶을
경우 유용하게 쓰시면 되겠습니다

보통 사용자로 부터 입력 받은 숫자값에 trim 으로 앞뒤 공백만 제거하지요..
이 클래스를 이용하면 앞/뒤 공백을 물론 중간 공백까지 완벽하게 제거할 수 있습니다

그러나 한가지는 유념해야 합니다.
위와 같이 공백,탭문자,줄바꿈문자 이외의 문자가 있다면 그 문자에서 읽기를 중단하게 됩니다.

다음의 코드를 보죠
double result = Conversion.Val("12얍34");
결과는 12입니다. 즉 ''얍'이라는 문자에서 읽기를 중단하여 뒤의 숫자 34는 반환하지 않는 것입니다


2. Conversion.Hex , Conversion.Oct 메서드
Conversion 클래스는 10진수 표현을 16진수, 8진수로 변환하는 메서드로 Hex,Oct 정적 메서드를 제공합니다

10진수 16을 16진수로 표현하면, 10 입니다
string result = Conversion.Hex(44032); //결과: AC00

또한  10진수 8은 8진수로 10이죠
string result = Conversion.Oct(8); //결과: 10

그리고 한글 '박'을 16진수로 표현하면 BC15가 됩니다
string result = Conversion.Hex('박'); //결과: BC15


3. Conversion.Fix , Conversion.Int 메서드
소수점이 있는 숫자에서 정수부분만 반환하고 싶다면 이 두 메서드를 이용하면 됩니다

Conversion.Fix(35.9) 와 Conversion.Int(35.9) 는 모두 35를 반환합니다
즉 35.9에서 소수부분인 0.9를 제외하고 정수 부분 35를 반환합니다

Fix 와  Int 의 차이점은 매개변수가 음수(-) 인 경우 다르게  처리합니다.
Conversion.Fix(-5.1)  //결과: -5
Conversion.Int(-5.1) //결과: -6

즉 Fix 는 매개변수가 음수인 경우 매개변수보다 크거나 같은 첫 번째 음의 정수를 반환하고
Int 는 매개변수보다 작거나 같은 첫 번째 음의 정수를 반환하게 됩니다

이름
비밀번호
홈페이지
GC <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요