Dart 숫자 자료형 num, int, double
글. 수알치 오상문
다트는 두 가지 형태의 숫자형 int, double을 제공하며, 이들은 num 클래스의 하위집합입니다.
int
정수 값은 플랫폼에 따라서 다르지만(depending on the platform), 최대 64 비트 크기를 갖습니다. 네이티브 플랫폼에서는 -2^63 ~ 2^63 - 1 범위가 됩니다. 웹상에서는 JavaScript 숫자(소수부가 없는 64비트 부동소숫점 값)이며 -2 ^ 53 ~ 2 ^ 53-1 범위입니다.
double
64비트(배정밀도) 부동소숫점 수입니다(IEEE 754 표준 규격). int와 함께 double은 num의 하위형입니다. num 형은 +, -, /, * 같은 기본 연산 기능을 가지며 abs(), ceil(), floor() 등의 다른 메서드도 있습니다(>> 같은 비트 연산자는 int 클래스에 정의되어 있습니다). num과 그 하위집합에서 갖지 않은 기능이 있다면 dart:math 라이브러에서 찾아보기 바랍니다.
정수는 소수점을 갖지 않은 숫자입니다. 다음 예제의 변수들은 모두 int 정수형입니다.
var x = 1;
var hex = 0xDEADBEEF; // 16진수 정수
var exponent = 8e5; // 8x100000의 지수 표현 정수
만약 숫자에 소수점이 포함되면 double 실수형으로 처리됩니다.
:
var y = 1.1;
var exponents = 1.42e5; // 1.42 x 100000
변수는 num 형으로 선언할 수도 있습니다. int와 double 값을 가질 수 있는 변수에서 num 형을 사용합니다.
num x = 1; // x는 정수형
x += 2.5;
정수 값이더라도 자료형이 double이면 double 값으로 자동 처리됩니다.
double z = 1; // double z = 1.0;
문자열을 숫자로 바꾸거나 그 반대인 경우의 예제는 다음과 같습니다.
// 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 정수형은 비트 연산자 쉬프트(<<, >>), 그리고(&), 또는(|) 연산자를 사용할 수 있습니다.
assert((3 << 1) == 6); // 0011 << 1 == 0110
assert((3 >> 1) == 1); // 0011 >> 1 == 0001
assert((3 | 4) == 7); // 0011 | 0100 == 0111
리터널 숫자는 컴파일 시간에 상수입니다. 많은 수식도 컴파일 시간에 숫자 값으로 계산될 수 있다면 상수로 취급됩니다.
const msPerSecond = 1000;
const secondsUntilRetry = 5;
const msUntilRetry = secondsUntilRetry * msPerSecond;
<이상>
'Dart' 카테고리의 다른 글
Dart 논리 자료형 bool (0) | 2021.06.12 |
---|---|
Dart 문자열 자료형 String (0) | 2021.06.12 |
Dart, 기본 자료형 (0) | 2021.06.12 |
Dart, 상수형 변수/자료를 만드는 const, final 지시어 (0) | 2021.06.12 |
Dart 언어 주요 개념 (0) | 2021.06.12 |