Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 float 변수를 선언할 때 f 접미사가 필요한 이유

C#에서 실수 리터럴을 float 타입 변수에 저장하려면 숫자 뒤에 소문자 f 접미사(suffix)를 붙여야 합니다. 이 접미사는 컴파일러에게 해당 리터럴이 double이 아닌 float 타입임을 알려주는 역할을 합니다.

왜 f 접미사가 필요한가?

C#에서 소수점이 있는 숫자 리터럴은 기본적으로 double 타입으로 해석됩니다. 그런데 double에서 float로의 암시적 변환은 정밀도 손실이 발생할 수 있기 때문에 컴파일러가 이를 허용하지 않습니다.

따라서 다음과 같은 코드는 컴파일 오류를 발생시킵니다.

float val = 30.22; // 오류: double을 float로 암시적 변환 불가

하지만 f 접미사를 붙이면 리터럴 자체가 float 타입으로 인식되어 문제없이 컴파일됩니다.

올바른 사용 예제

using System.IO;
using System;

public class Program {
    public static void Main() {
        // f 접미사를 붙여 float 리터럴로 선언
        float val = 30.22f;
        Console.WriteLine(val);
    }
}

출력 결과

30.22

참고 사항

  • 대문자 F를 사용해도 동일하게 작동합니다. 예: 30.22F
  • 정수 리터럴에는 l(long), u(uint), m(decimal) 등의 접미사도 존재합니다.
  • 반대로 double 타입에는 별도의 접미사 없이 그대로 사용할 수 있으며, 명시적으로 표현하고 싶다면 d 또는 D를 붙일 수 있습니다.

이처럼 f 접미사는 C#의 강력한 타입 시스템에서 타입 불일치로 인한 컴파일 오류를 방지하고, 개발자의 의도를 명확하게 전달하는 중요한 문법 요소입니다.