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

(알 수 없음)님의 프로필 이미지
(알 수 없음)

작성한 질문수

[코드팩토리] [입문] Dart 언어 4시간만에 완전정복

다트 변수 연산 질문

작성

·

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에 넣을 수 없습니다.

/ <- 대신에 ~/를 사용하면 자동으로 라운딩이 가능합니다.

한번 해보세요!

감사합니다!

(알 수 없음)님의 프로필 이미지
(알 수 없음)

작성한 질문수

질문하기