[Java] incompatible types: possible lossy conversion from float to int

epiphany·2022년 10월 18일
0

Programmers School

목록 보기
1/22
post-thumbnail

Programmers School에서 Lv0 코딩 과정에서 발생한 오류 정리

📢 문제

두 수의 나눗셈을 하는 과정에서 아래와 같이 오류 발생

📑 시도

float가 문제일까봐 double로 변경하고, result에서 한번에 연산 후 answer에 int형으로 변환하여 인서트 되도록 수정

  • 오류는 안생기지만 뭔가 답이 잘못됨
  • 나눠지는 과정에서 이미 나머지 부분이 날라가는 것 같음

📖 원인

num1, num2가 int형이여서 나눠질때 int로 결과가 나타나서 원하는 답을 얻지 못한 것같음

💡 해결

연산식 앞에 double로 형 변환을 해준 후 결과를 int형으로 변환하니 성공!

// 최종 코드
class Solution {
    public int solution(int num1, int num2) {
        int answer = 0;
        if ((0<num1 && num1<=100) && (0<num2 && num2<=100)){
            double result = (double)num1/num2 * 1000;
            answer = (int)result;
        }
        return answer;
    }
}

0개의 댓글