작성
·
9
0
안녕하세요 강의 잘 듣고 있습니다!! 근데 영상 예제 말고 추가적으로 코드를 입력해보고 있는데 이해가 안되는 에러가 발생해서 질문 드립니다
void main() {
int number = 2; // doble로 변경하면 문제 없이 동작됨 왜?
print(number); // 2
print(number = number + 2); // 4
print(number = number - 2); // 2
print(number = number * 2); // 4
print(number = number / 2); // 에러 발생 왜??? 4 / 2면 2가 나와야 하는 거 아닌가?
print('-----------여기까지는 기본적인 사칙연산 네 가지-----------');
print(number % 2); // number 나누기 2의 나머지 0
print(number % 3); // number 나누기 2의 나머지 2
print(number); // 많은 연산을 진행했지만 값은 변하지 않았음
}
지금 위 코드에서 이해가 안되는 게 print(number = number / 2); 이 부분에서
Error: A value of type 'double' can't be assigned to a variable of type 'int'.
print(number = number / 2); //2
위와 같이 double 타입을 int 타입 변수에 저장할 수 없다는 에러가 발생합니다 근데 4 /2의 결과는 2인데 왜 이런 에러가 발생하는지 모르겠습니다 알려주시면 감사하겠습니다!!
강의 잘 듣고 있습니다 항상 감사합니다
좋은 하루 보내세요!
답변 1
0
안녕하세요!
모든 나누기 계산은 double로 계산됩니다.
double이 int 보다 넓은 개념이기 때문에 double 타입을 int에 넣을 수 없습니다.
/ <- 대신에 ~/를 사용하면 자동으로 라운딩이 가능합니다.
한번 해보세요!
감사합니다!