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

Ⅰ. 서론: 숫자(Number) 타입이 중요한 이유
📌 1. Dart에서 숫자(Number) 데이터 타입
📌 2. 숫자를 다룰 때 고려해야 할 사항
Ⅱ. 본론: 숫자 타입과 연산자 활용법
📌 Step 1: 정수(int)와 실수(double) 차이점
📌 Step 2: 산술 연산자 (+, -, , /, ~/ 등) 활용법
📌 Step 3: 비교 연산자 (>, <, ==, != 등) 활용법
📌 Step 4: 증감 연산자 (++, --) 및 복합 할당 연산자
📌 Step 5: 숫자 변환 (int ↔ double, String ↔ Number)
📌 Step 6: 수학 함수 활용 (반올림, 절댓값, 난수 생성 등)
Ⅲ. 숫자 타입을 효과적으로 활용하는 방법
📌 숫자 계산 시 고려할 점
📌 성능을 고려한 숫자 연산 처리 방법
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
}
➡ 정수와 실수는 자동 변환되지 않으므로 변환 함수(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 라이브러리를 적극 활용