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



exp 가 플로트 자료형이고 뒤에 더블인데 나누기 했는데 이게 오류가 안나오는데 혹시 제가 비쥬얼 스튜디오 코드를 쓰고있어서 그럴까요??
回答 2
1
안녕하세요!
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# 컴파일러라면 명시적 캐스팅 없이는 에러가 떠야 맞습니다.
고민이있습니다
0
6
1
클로드코드 + 유니티 컨텐츠만들기 응용에 대하여 질문드립니다.
0
15
1
강의자료 누락
0
25
1
매니저 관련 질문이 있습니다.
0
27
2
도메인, IRIS
0
36
1
언리얼 유니티
0
42
2
언리얼 에디터에서 에이젼트 실행 질문
0
31
1
Instantiate
0
25
1
적립금이 들어오지 않았습니다
0
17
1
유니티 허브 다운로드
1
32
2
Rider 설치시 타깃 프레임워크 설정
0
32
2
챌린지 라이브 시간이 지나면 강의는 볼 수 없는건가요?
0
102
2
강의자료 누락
0
24
1
비쥬얼 스튜디오에서 unity연결이 없습니다.
0
50
2
UserDataManager 클래스 hasSaveError 처리
0
31
2
제공해주신 자료에 스크립트들이 빠져있습니다
0
27
2
플레이어를 왜 ECS로 만드는 건가요?
0
33
1
OAuth방식 강의 문의
0
48
1
싱글턴패턴
0
32
2
빌드 파일 제출 기한
0
97
2
마지막 주 수업은 언제 업로드 되는 건가요?
0
70
1
11월 30일 강의업데이트가 안되어 있네요.
0
57
2
맥에서는 비쥬얼스튜디오 2022 지원을 안하네요;;
0
89
3
영상관련
0
75
1

