int 및 double은 모두 num 타입의 하위 클래스입니다. num 타입에는 기본적인 산술 연산자(+, -, /, *, % 등) 대한 메서드와 기본적인 수치 연산 함수, 비트 연산 함수 등이 정의되어 있습니다. num 타입에서 찾을 수 없는 수치 연산 기능은 dart:math 라이브러리에서 제공됩니다.
아래 코드는 정수 및 실수 리터럴을 정의하는 방법입니다.
// 정수 리터럴을 정의하는 방법입니다.
var x = 1; // 10진수 표현식
var hex = 0xDEADBEEF; // 16진수 표현식
var exponent = 8e5; // 정수 지수 표현식
// 실수 리터럴을 정의하는 방법입니다.
var y = 1.1; // 실수 표현식
var exponents = 1.42e5; // 실수 지수 표현식
num 타입을 이용하면 int와 double을 모두 할당할 수 있는 변수를 선언할 수 있습니다. 정수 리터럴을 double 타입 변수에 할당하면 자동으로 타입 변환이 이루어집니다.
void main() {
// x는 int와 double 모두를 할당할 수 있습니다.
num x = 1;
x += 2.5;
// 1은 자동으로 1.0으로 변환됩니다.
double z = 1;
}
Dart 언어에서는 문자열과 숫자를 상호 변환하는 방법을 제공합니다.
void main() {
// String -> int
var one = int.parse('1');
assert(one == 1);
// String -> double
var onePointOne = double.parse('1.1');
assert(onePointOne == 1.1);
// int -> String
String oneAsString = 1.toString();
assert(oneAsString == '1');
// double -> String
String piAsString = 3.14159.toStringAsFixed(2);
assert(piAsString == '3.14');
}
int 타입은 비트 필드에서 플래그를 조작하고 마스킹하는데 유용한 shift(<<, >>), complement(~), AND(&), OR(|), XOR(^) 같은 비트 연산을 지원합니다. 보다 자세한 내용은 여기를 참고해주세요.