C# 숫자 리터럴 접미사란?
C#에서는 숫자 리터럴 뒤에 접미사(suffix)를 붙여 해당 값이 어떤 숫자 형식으로 해석될지 명확하게 지정할 수 있습니다. 접미사를 사용하면 컴파일러가 변수의 형식을 정확히 인식하므로, 의도하지 않은 형식 변환 오류를 예방하고 코드의 가독성도 높일 수 있습니다.
예를 들어 long 형식에는 L 접미사를 사용합니다.
// long 접미사
long val1 = 29345L;
double 형식에는 D 접미사를 사용합니다.
// double 접미사
double val2 = 297.325D;
Console.WriteLine(val2);
주요 숫자 접미사 종류
- L — long 형식 지정
- D — double 형식 지정
- F — float 형식 지정
- M — decimal 형식 지정
- U — uint(부호 없는 정수) 형식 지정
전체 예제 코드
using System.IO;
using System;
public class Program {
public static void Main() {
// long 접미사
long val1 = 29345L;
Console.WriteLine(val1);
// decimal 접미사
decimal val5 = 3245.5678M;
Console.WriteLine(val5);
// double 접미사
double val2 = 297.325D;
Console.WriteLine(val2);
// float 접미사
float val3 = 250.35F;
Console.WriteLine(val3);
// unsigned 접미사
uint val4 = 3456U;
Console.WriteLine(val4);
}
}
실행 결과
29345
3245.5678
297.325
250.35
3456
접미사 사용 시 주의 사항
C#에서 실수형 리터럴의 기본 형식은 double입니다. 따라서 float나 decimal 변수에 소수 값을 대입할 때는 반드시 F 또는 M 접미사를 붙여야 합니다. 예를 들어 float val = 250.35;처럼 접미사 없이 작성하면 'double을 float로 암시적으로 변환할 수 없다'는 컴파일 오류가 발생합니다.
또한 U와 L 접미사는 조합하여 ulong 형식을 나타낼 수 있으며(UL), 접미사 문자는 대소문자 구분 없이 사용할 수 있지만 관례상 대문자를 사용하는 것이 일반적입니다.