C\#기본 데이터 형식 변환

2992 단어 데이터 변환
int x; long y = 123456789101112; x = (int)y; Console.WriteLine(x);
출력 결과:

우 리 는 log 유형의 수치 범 위 는-922337203685775805~+92233723685775807 이라는 것 을 알 고 있다.int 유형:-2147483648~+2147483647
위의 코드 에서 log 변수의 값 이 int 가 수용 할 수 있 는 최대 치 를 초과 하여 데이터 의 손실 을 초래 했다.이렇게 하면 데이터 가 손실 되 거나 이상 을 일 으 킬 수 있 는 모든 변환 은 명시 적 변환(explicit)을 실행 해 야 합 니 다.
반대로 암시 적 전환(implicit)을 실행 합 니 다.
chencked 로 위의 코드 를 검사 합 니 다.
그림 에서 위의 전환 이 넘 치 는 이상 을 던 졌 다 는 것 을 알 수 있 고 명시 적 전환 이 안전 하지 않 을 수 있다.하면,만약,만약...
long 의 값 은 int 의 유효 치 범위 내 에서 이상 을 일 으 키 지 않 습 니 다.
다음은 예 를 들 어 int i;double d = 6.88; i = (int)d; Console.WriteLine(i);
 
출력 결과:6
이렇게 정밀도 손실 이 발생 한 우 리 는 그 를 협소 화 전환 이 라 고 할 수 있다.C\#C 나 C+와 달리 C 나 C++에 서 는 i=d 의 C\#컴 파일 러 를 직접 알려 줄 수 있다.정밀도 손실 을 받 으 면 명시 적 형식 으로 전환 해 야 한다.
왜 우리 가 float 형식 을 초기 화 할 때 숫자 뒤에'F'를 추가 해 야 합 니까?C\#2.3 과 같은 소수 점 의 상수 가 더 높 은 정밀도 의 double 유형 이 라 고 생각 하기 때문에 컴 파일 러 는 정밀도 손실 로 인해
거절 하고 집행 하 다.따라서 float 에 값 을 부여 할 때 상수 를 float 의 값 으로 명시 적 으로 바 꾸 거나 상수 뒤에'F'(소문 자 도 가능)를 직접 추가 하 는 것 이 좋 습 니 다.물론 우 리 는 보통 부동 소수점 을 처리 할 때 직접 사용 하 는 것 이 좋 습 니 다.
double 이렇게 하면 많은 유형의 전환 을 피 할 수 있 습 니 다.
지금 우 리 는 방식 을 바 꾸 었 다.
이렇게 낮은 정밀도 의 값 을 높 은 정밀도 변수 에 부여 하면 우 리 는 그 를 넓 은 전환 이 라 고 부른다.
 다음은 명시 적 전환 의 제한 에 대해 간단히 말씀 드 리 겠 습 니 다.
값 형식 에 서 는 숫자,문자(char),매 거 진(enum)에서 만 변환 할 수 있 습 니 다.
bool 을 다른 형식 으로 직접 변환 할 수 없습니다.다른 유형 은 bool 형식 으로 직접 변환 할 수 없습니다.두 번 째 부분:문자열 과 값 형식의 변환
주요 용도:Parse(),Convert,ToString()
string=값 형식  :string aa = "123"; int num = int.Parse(aa); double db = double.Parse(aa);
 물론 parse 방법 은 무 거 운 적재 방법 이 많 기 때문에 일일이 열거 하지 않 겠 습 니 다.

 Convert 는 확장 할 수 없습니다.미리 정 의 된 수량 만 지원 합 니 다.그 는 모든 기본 형식 에서 다른 기본 형식 string str="true"로 전환 할 수 있 습 니 다.bool b = Convert.ToBoolean(str) ? bool.Parse(str) : false; Console.WriteLine(b);
출력 결과:True
트 리 파 스 는 이 물건 이 1.0 버 전에 서 double 만 있 고 2.0 에서 보급 되 었 다 고 들 었 다.TryParse()용법 도 Parse()방법 과 차이 가 많 지 않 습 니 다.다만 그 가 반환 한 것 은 bool 값 입 니 다.out 을 통 해 값 을 변수 에 부여 합 니 다.
두 사람의 차이 점:TryParse 전환 실 패 는 이상 을 일 으 키 지 않 고 false 로 돌아 갑 니 다.변 환 된 값 은 null 또는 형식 이 틀 리 거나 넘 치 는 경우 입 니 다.
수치 형식 out 의 값 이 0 이면 문자 형식 이 정의 되 지 않 은 값 이 고 불 은 false 이 며...string str 1="abc",str 2="123"입 니 다.int a, b; int.TryParse(str1,out a); int.TryParse(str2,out b); Console.WriteLine(a); Console.WriteLine(b);
출력 결과:  0 
     123
값 형식=string:
마지막 으로 tostring()방법 입 니 다.모든 데이터 형식 은 tostring 을 사용 할 수 있 습 니 다.그리고 tostring()은 스스로 변환 방법 을 정의 할 수 있 습 니 다.tostring()은 평소에 가장 많이 사용 하 는 것 입 니 다.이것 은 더 이상 말 하지 않 겠 습 니 다.
 ps:어 지 럽 게 썼 습 니 다.생각 나 는 대로 쓰 세 요."산문"으로 보 세 요.

좋은 웹페이지 즐겨찾기