double a = 95.6;
byte b = (a>90.1) ? 4 : 3;
println(b);
이거 왜 오류임???
4랑 3은 byte 범위 안에 있지 않음??
사실
byte x = 1;
byte y = 2;
byte z = x + y;
println(z); 이런 경우라면 계산할 때 자동으로 int + int로 변환되기 때문에 byte는 int를 담을 수 없어서 오류가 날 텐데,
byte k = 1 + 4;
println(k)
이렇게 숫자 + 숫자인 경우는 오류가 안 나잖아...
그렇기 때문에 맨 위의 예시인
byte b = (a>90.1) ? 4 : 3; 이 식의 경우도 전부 한 줄 안에 있으니 int와 int로 타입변환이 안 되고 바로 계산되어야 하는 게 아닌가 싶었는데
오류가 나길래 ㅠㅠ 이거 친절하게 설명해줄 프갤형님 있으면 저 좀 이해시켜주삼 ㅠㅠ
오류메세지가 뭐넫
possible lossy conversion from int to byte
그 앞에 incompatible types:도 써잇음
몰겠당 스오플 고고싱
스오플이뭐에용
스택오버플로우
영어로 써야하죠?
(int) 4 : (int) 3 해 봤음? 병신같지만 이걸꺼 같은데
음 저기에서 해결방법이 궁금한 게 아니라, 왜 오류가 나는지 궁금함 ㅠㅠ 내 글 내용 중에 조건연산자 예 말고 byte 덧셈 연산에선 오류가 안 나는데 조건연산자에선 오류가 나는 이유가 궁금 ㅠㅠ