강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

musful님의 프로필 이미지
musful

작성한 질문수

유니티 기초 챌린지: 2D부터 3D까지 나만의 게임 만들기

연산자와 조건문 (if, switch)

자료형 플로트는 더블 자료형으로 나눠도 오류가 발생하지 않는 이유가 뭘까요?

작성

·

24

0

스크린샷 2025-11-06 오후 4.57.21.png.webp

 

스크린샷 2025-11-06 오후 4.57.04.png.webp스크린샷 2025-11-06 오후 4.56.41.png.webp

exp 가 플로트 자료형이고 뒤에 더블인데 나누기 했는데 이게 오류가 안나오는데 혹시 제가 비쥬얼 스튜디오 코드를 쓰고있어서 그럴까요??

답변 2

1

Pinous님의 프로필 이미지
Pinous
지식공유자


안녕하세요!

C# 규칙상으로는 float 변수에 double 값을 바로 대입할 수 없기 때문에,
exp = exp / 3.13589130580913; 같은 코드는 원래 컴파일 오류가 나야 정상입니다.

리터럴 3.13589130580913은 f 접미사가 없으니까 double 타입으로 인식되고,
연산 과정에서 exp도 자동으로 double로 승격됩니다.
결국 계산 결과는 double이 되는데, 이걸 다시 float에 넣을 때는
명시적 캐스팅((float))이 필요합니다.

그런데 VS Code에서 오류가 안 보인다면, 그건 C# 확장(OmniSharp)이나 타입 분석 기능이
제대로 작동하지 않고 있어서 그런 것 같습니다.
VS Code는 경고나 오류를 표시만 안 하는 경우가 있을 뿐, 실제로 C# 컴파일러 규칙이 바뀐 건 아닙니다.
빌드해보면 여전히 오류가 나오는 걸 확인이 가능하실겁니다.

정리하면,
‘VS Code라서 오류가 안 나는 게 아니라, VS Code가 오류를 표시하지 못하고 있는 것’입니다.
정상적인 C# 컴파일러라면 명시적 캐스팅 없이는 에러가 떠야 맞습니다.

musful님의 프로필 이미지
musful
질문자

C#익스텐션 설치해도잘 안되는것 같더라고요ㅜ

0

musful님의 프로필 이미지
musful
질문자

아 그렇군요 감사합니다 매우 빠른답변 너무 좋아요 ㅎㅎ 그럼 vs code에서 오류표시 기능을 제대로 작동시킬려면 뭘해야할까요?

Pinous님의 프로필 이미지
Pinous
지식공유자

기본적으로는 문제없게 잘 되는게 정상인데,, 워낙 이유가 다양해서요 ㅠㅠ 아예 비쥬얼스튜디오를 삭제하고 다시 다운로드 해 보시겠어요?

musful님의 프로필 이미지
musful
질문자

네 알겠습니다 정말 감사합니다 빠르게 답변 주셔서 든든합니다ㅎㅎ한번 해결해보겠습니다

musful님의 프로필 이미지
musful

작성한 질문수

질문하기