언어/C#
Unity C# 기초 2. 형변환(casting)
habbn
2023. 5. 10. 01:19
728x90
1. 형변환 (Casting)
변수나 리터럴 타입을 다른 타입으로 변환하는 것
- 데이터 형의 크기 순서
- double > float > ulong > long > uint > int > ushort > short > char
1. 자동 형변환
작은 자료형에서 큰 자료형으로 이동할 때 자동으로 형변환을 시켜줍니다.
서로 다른 데이터형 변수에 대입하거나 연산을 할 때 자동으로 형변환 되는 규칙이 있습니다.
단, 서로 다른 데이터형 일 때 큰쪽으로만 상승 변환되는 특징이 있습니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
void Start()
{
int ii = 123;
float ff = ii; //자동 형변환 123.0f
//int ii = ff; //자동 형변환 불가능
Debug.Log("ii = " + ii + " : ff " + ff); //출력결과 ii = 123 : ff = 123
long ll = 456L;
ll = ii; // 자동 형변환 가능 456L
//ii = ll; // 자동 형변환 불가능
}
}
큰 데이터형 (float) 을 작은 데이터형(int)에 자동으로 대입할 수 없기 때문에
int ii = ff; , ii = ll 는 자동 형변환이 불가능합니다.
2. 수동 형변환 (강제 형변환)
큰자료형에서 작은 자료형으로 이동할 때 오류가 발생하는데 오류가 발생하지 않도록 강제적으로 형변환을 해주는 것입니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
void Start()
{
float ff = 12.34f;
int ii = (int)ff; // 수동 형변환(강제 형변환)
Debug.Log("ii : " + ii); // 출력 결과 ii : 12
}
}
//수동 형변환 활용 예
float xxx = 123.456f;
int MyInt = (int)xxx;
float MyFloat = xxx - (int)xxx; //123.456f - 123;
Debug.Log(MyInt + " : " + MyFloat); //123 : 0.4560013
3. 숫자형을 문자열로 변환하기
ToString() 메서드를 사용하여 숫자형을 문자열로 변환합니다.
int number = 123;
string text = number.ToString() // "123"
float f_number = 3.14f;
string f_text = f_number.ToString() // "3.14"
4. 문자열을 숫자형으로 변환하기
int.Parse()를 사용하여 변환해 줄 수 있지만 특수 문자가 끼어 있으면 변환 에러가 발생하는 좀 위험한 함수입니다.
string EEE = "123";
int III = int.Parse(EEE);
Debug.Log(III);
int.TryParse("체크해야될 값" , out 리턴값) 함수를 사용하여 변환하는 것이 안전한 형변환입니다.
int FFF = 0;
int.TryParse("123", out FFF);
Debug.Log(FFF); //출력결과 123
FFF = FFF + 5000;
Debug.Log(FFF); //5123;
728x90