반응형

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

+ Recent posts