Flutter (앱 개발)/Dart 코드 첨부 파일

[Dart 변수와 데이터 타입] 숫자(Number) 타입과 연산자 활용법(명령 프롬프트 첨부 파일 제공)

Ize𓆜 2025. 2. 23. 20:49
728x90
728x90

 

 

Dart의 숫자(Number) 타입과 연산자 활용법 🔢🚀

 

Dart에서 숫자(Number) 타입

정수(int)와 실수(double)로 나뉘며,


수학적 연산, 계산, 비교, 변환 등의

다양한 기능을 제공합니다.

 

 

이번 포스팅에서는

Dart의 숫자 타입과

주요 연산자 활용법

예제와 함께 정리하겠습니다. 🚀

 

 


먼저,

 

더 많은 정보, 혹은


순서대로 포스팅을 보고 싶다면


아래 노션을 확인해주세요. 

 

 

https://mongmung-i.notion.site/Flutter-1a39b1e2cdaa80319a0fc2a89281dc71?pvs=4

 

Flutter 어플 개발 일지 | Notion

Made with Notion, the all-in-one connected workspace with publishing capabilities.

mongmung-i.notion.site

https://mongmung-i.notion.site/19f9b1e2cdaa80a984ade6141a87fd29?pvs=4

 

창업 트랙 사전 캠프 𓆲 | Notion

이 곳은 창업 트랙 사전 캠프 진행 사항을 정리하는 곳입니다.

mongmung-i.notion.site

 

 


Ⅰ. 서론: 숫자(Number) 타입이 중요한 이유 🤔

 

Dart에서 숫자(Number) 데이터 타입

 

Dart에서 숫자 데이터 타입은 

크게 정수(int) 와 실수(double) 로 나뉩니다.


각각의 차이를 이해하고 

적절한 상황에서 사용하는 것이 중요합니다.

 

void main() {
  int age = 30;
  double price = 9.99;

  print('나이: $age'); // 30
  print('가격: $price'); // 9.99
}

정수 (int) → 소수점이 없는 정수 값을 저장
실수 (double) → 소수점이 포함된 실수 값을 저장

Flutter에서 UI 크기 조정, 사용자 입력 데이터, 계산 기능 등을 구현할 때 필수적으로 사용! 🚀


숫자를 다룰 때 고려해야 할 사항

 

 

정수와 실수의 차이 이해 (int와 double 변환 필요할 수 있음)
연산자(+, -, *, /, %)를 올바르게 활용하여 계산 정확도 유지
수학 연산 시 dart:math 라이브러리를 사용하여 최적화

이제 Dart에서 숫자(Number) 타입과 연산자 활용법을 하나씩 살펴보겠습니다! 🎯


Ⅱ. 본론: 숫자 타입과 연산자 활용법 🏗️

 

  Step 1: 정수(int)와 실수(double) 차이점

 

 

Dart에서 숫자 데이터 타입은 크게

정수(int)실수(double) 로 나뉩니다.


각각의 차이를 이해하고

적절한 상황에서

사용하는 것이 중요합니다.

 

 

 

Dart에서는

정수와 실수를 명확하게 구분하기 때문에,


정수를 실수로 바꾸거나

실수를 정수로 변환할 때는

변환 메서드(toInt(), toDouble())

사용해야 합니다.

 


자동 변환이 되지 않기 때문에

실수 값을 정수 변수에 저장하려고 하면

오류가 발생합니다.

 

 

정수(int) → 소수점 없이 정수 값만 저장할 수 있습니다.

    예를 들어, 사람의 나이(30), 학생의 학번(20240101), 상품 개수(50) 같은 값은 정수 타입이 적합합니다.


실수(double) → 소수점을 포함한 값을 저장할 수 있습니다.

    예를 들어, 상품 가격(9.99), 온도(36.5), 위치 좌표(127.0043) 같은 값은 실수 타입이 필요합니다.

 

정수와 실수는 자동 변환되지 않으므로, 필요할 때 toInt() 또는 toDouble()을 사용해야 합니다.

 

✅ 활용 예제

void main() {
  int age = 30;  
  double price = 9.99;

  print('나이: $age'); // 30
  print('가격: $price'); // 9.99
}

 

변환함수.txt
0.00MB

 

 

정수와 실수는 자동 변환되지 않으므로 변환 함수(toInt(), toDouble()) 사용 필요! 🎯

 

💡 실전 활용 예시:

  • 쇼핑몰 앱에서 상품 개수(정수)  상품 가격(실수) 을 다룰 때
  • 건강 앱에서 사용자의 체온(실수) 을 측정할 때
  • 지도 앱에서 위도 및 경도(실수) 를 처리할 때

 


Step 2: 산술 연산자 (+, -, , /, ~/ 등) 활용법

 

Dart에서는

 사칙연산(+, -, *, /)뿐만 아니라 

정수 나눗셈(~/)과 

나머지(%) 연산자도 제공합니다.

 

  • 덧셈(+) / 뺄셈(-) / 곱셈(*) 은 일반적인 계산을 수행할 때 사용됩니다.
  • 나눗셈(/) 은 항상 실수(double) 값을 반환하므로 정수 나눗셈이 필요할 경우 몫 연산자(~/) 를 사용해야 합니다.
  • 몫 연산자(~/) 는 나눗셈 후 소수점을 버리고 정수 부분만 반환합니다.
  • 나머지 연산자(%) 는 나눗셈 후 남은 나머지를 반환하는 연산자로, 반복 주기 계산 에 자주 사용됩니다.

 

기본적인 사칙연산 연산자

void main() {
  int a = 10;
  int b = 3;

  print('덧셈: ${a + b}'); // 13
  print('뺄셈: ${a - b}'); // 7
  print('곱셈: ${a * b}'); // 30
  print('나눗셈: ${a / b}'); // 3.333...
}

 

 

몫 연산자 (~/)와 나머지 연산자 (%)

void main() {
  int a = 10;
  int b = 3;

  print('몫: ${a ~/ b}'); // 3 (정수 나눗셈)
  print('나머지: ${a % b}'); // 1
}

나눗셈 결과를 정수로 얻고 싶다면 ~/ 연산자를 사용하면 됩니다.

 

💡 활용 예시:

  • 총 가격을 계산할 때 → price * quantity
  • 평균 점수를 계산할 때 → total / count (소수점 포함 필요)
  • 페이지네이션(페이징 처리) 구현할 때 → currentPage ~/ itemsPerPage (몫 연산 필요)
  • 특정 주기마다 반복되는 이벤트 실행할 때 → day % 7 == 0 (나머지 연산 필요)

Step 3: 비교 연산자 (>, <, ==, != 등) 활용법

 

 

비교 연산자는

 두 개의 숫자를 비교하고 

참/거짓 (Boolean) 값을 반환합니다.


조건문과 함께 활용하면

 특정 로직을 실행할 때 유용합니다.

 

 

  • > (크다) → 왼쪽 값이 오른쪽 값보다 크면 true 반환
  • < (작다) → 왼쪽 값이 오른쪽 값보다 작으면 true 반환
  • >= (크거나 같다) → 왼쪽 값이 오른쪽 값보다 크거나 같으면 true 반환
  • <= (작거나 같다) → 왼쪽 값이 오른쪽 값보다 작거나 같으면 true 반환
  • == (같다) → 두 값이 같으면 true 반환
  • != (다르다) → 두 값이 다르면 true 반환

 

 

숫자 비교 연산자

void main() {
  int x = 10;
  int y = 5;

  print(x > y);  // true
  print(x < y);  // false
  print(x >= y); // true
  print(x <= y); // false
  print(x == y); // false
  print(x != y); // true
}

 

💡 활용 예시:

  • 사용자가 입력한 값이 특정 범위 내에 있는지 확인 → if (age >= 18) {...}
  • 숫자가 같은지 비교하여 실행 로직 변경 → if (score == 100) {...}
  • 최소 또는 최대값 조건 설정 → if (temperature > 30) { print("너무 더움"); }
  •  

Step 4: 증감 연산자 (++, --) 및 복합 할당 연산자

 

Dart에서는

변수 값을 증가 또는 감소 시킬 때

++ 또는 -- 연산자를 사용할 수 있습니다.


이 연산자는 보통 반복문에서

카운트 증가/감소 를 처리할 때 많이 사용됩니다.

 

  • ++ → 1 증가
  • -- → 1 감소

 

복합 할당 연산자는

기존 변수의 값에 특정 연산을 적용한 후

결과를 다시 변수에 저장하는 역할을 합니다.

 

  • += → a += b; 는 a = a + b; 와 동일
  • -= → a -= b; 는 a = a - b; 와 동일
  • *= → a *= b; 는 a = a * b; 와 동일
  • /= → a /= b; 는 a = a / b; 와 동일

 

증감 연산자 (++, --)

void main() {
  int num = 10;
  
  num++;  // 11
  print(num);

  num--;  // 10
  print(num);
}

 

복합 할당 연산자 (+=, -=, *=, /=)

void main() {
  int value = 5;
  
  value += 3;  // value = value + 3
  print(value); // 8

  value *= 2;  // value = value * 2
  print(value); // 16
}

 

💡 활용 예시:

  • 카운트 증가/감소 버튼 만들기 → likeCount++, cartItems--
  • 게임 점수 업데이트 → score += 10;
  • 할인율 계산 → price *= 0.9; // 10% 할인

Step 5: 숫자 변환 (int ↔ double, String ↔ Number)

 

 

숫자 데이터는 다른 타입으로

 변환해야 하는 경우가 많습니다.

 

예를 들어,

사용자가 입력한 숫자는

문자열(String) 타입이므로

정수(int) 또는 실수(double)로

변환해야 합니다.

 

  • 정수를 실수로 변환할 때 toDouble() 사용
  • 실수를 정수로 변환할 때 toInt() 사용 (소수점 이하 값은 버려짐)
  • 문자열을 숫자로 변환할 때 int.parse() 또는 double.parse() 사용
  • 숫자를 문자열로 변환할 때 toString() 사용

 

 

"void main() {"는 필수 인 거 아시죠?

 

정수를 실수로 변환 (toDouble())

int number = 10;
double converted = number.toDouble();
print(converted); // 10.0

 

실수를 정수로 변환 (toInt())

double value = 10.99;
int rounded = value.toInt();
print(rounded); // 10

문자열을 숫자로 변환 (int.parse(), double.parse())

String numText = '42';
int num = int.parse(numText);
print(num + 10); // 52

숫자를 문자열로 변환 (toString())

double pi = 3.14;
String piText = pi.toString();
print('PI 값: ' + piText);

 

💡 활용 예시:

  • 사용자가 입력한 숫자를 정수로 변환하여 계산 → int.parse(userInput)
  • 소수점이 필요하지 않은 값을 정수로 변환하여 저장 → toInt()
  • 숫자를 UI에 표시할 때 문자열로 변환 → toString()

 


Step 6: 수학 함수 활용 (반올림, 절댓값, 난수 생성 등)

 

 

Dart에서는

 dart:math 라이브러리를 사용하여 

다양한 수학 연산을 수행할 수 있습니다.

 

 

  • round() → 소수점 이하 값을 반올림
  • ceil() → 소수점 이하 값을 올림
  • floor() → 소수점 이하 값을 내림
  • abs() → 절댓값 반환
  • max(a, b), min(a, b) → 두 숫자 중 최대/최소값 반환
  • Random().nextInt(n) → 0부터 n-1 사이의 랜덤 숫자 반환

 

 

반올림 (round(), ceil(), floor())

double num = 3.75;
print(num.round()); // 4
print(num.ceil());  // 4 (올림)
print(num.floor()); // 3 (내림)

 

절댓값 (abs())

int negative = -10;
print(negative.abs()); // 10

 

최대/최소값 (max(), min())

import 'dart:math';

void main() {
  print(max(10, 20)); // 20
  print(min(10, 20)); // 10
}

 

랜덤 숫자 생성 (Random())

import 'dart:math';

void main() {
  var random = Random();
  print(random.nextInt(100)); // 0~99 사이의 랜덤 숫자
}

 

💡 활용 예시:

  • 랜덤한 숫자 생성하여 로또 번호 뽑기 → Random().nextInt(45) + 1
  • 절댓값을 활용하여 거리 차이 계산 → (pointA - pointB).abs()
  • 최대값/최소값을 구해 특정 조건 설정 → max(score1, score2)

 


Ⅲ. 숫자 타입을 효과적으로 활용하는 방법 ✅

 

숫자 계산 시 고려할 점

 

정수와 실수를 적절히 변환하여 사용
정확한 계산을 위해 round(), ceil(), floor() 활용
Flutter UI에서 숫자를 다룰 때 적절한 포맷팅 적용

Dart의 숫자 타입과 연산자를 익히면, 다양한 계산 기능을 쉽게 구현 가능! 🚀


숫자(Number) 타입과 연산자 정리

 

정수(int)와 실수(double)는 각각의 특징이 있음
사칙연산, 비교 연산, 증감 연산, 숫자 변환 등을 자유롭게 활용 가능
수학 연산 시 dart:math 라이브러리를 적극 활용

728x90
728x90