Dart에는 내장 라이브러리가 제공되며, 이 라이브러리를 활용해 여러 기능을 구현할 수 있습니다. 수학 연산에 사용하는 라이브러리가 그 예시입니다.
import 'dart:math';Code language: JavaScript (javascript)
자주 사용하는 상수
print(pi); // 3.141592653589793 원주율
print(e); // 2.718281828459045 자연상수
print(sqrt2); // √2 ≈1.4142Code language: PHP (php)
삼각함수
sin() cos() tan() 매개변수: 호도법(라디안). 각도 ↔ 라디안 변환식: 라디안 = 각도 × pi / 180
void trigDemo() {
assert(cos(pi) == -1.0);
int degrees = 30;
double radians = degrees * pi / 180;
double result = sin(radians);
// 부동소수점은 직접 ==로 비교하지 말고 차의 절댓값으로 확인하세요
assert((result - 0.5).abs() < 0.01);
}Code language: Dart (dart)
최댓값 / 최솟값
assert(max(1, 1000) == 1000);
assert(min(1, -1000) == -1000);
난수 Random
void randomDemo() {
final rand = Random();
double d = rand.nextDouble(); // [0.0, 1.0)
int i = rand.nextInt(10); // 0 ~ 9
bool b = rand.nextBool(); // true / false
// 비밀번호, 키 생성에 활용하는 암호학적 안전 난수
final secureRand = Random.secure();
}Code language: Dart (dart)
자주 쓰이는 함수
sqrt(9); // 제곱근 3.0
pow(2, 3); // 거듭제곱 2^3=8.0
log(e); // 자연로그
atan2(y, x); // 아크탄젠트, 좌표계 각도 계산에 자주 사용Code language: Dart (dart)
전체 예제
import 'dart:math';
void main() {
// 상수
print('pi = $pi');
print('e = $e');
// 삼각함수
final rad30 = 30 * pi / 180;
print('sin30° = ${sin(rad30)}');
// max min
print('max(2,9) = ${max(2,9)}');
print('min(2,9) = ${min(2,9)}');
// 난수
final r = Random();
print('0~9 난수 정수:${r.nextInt(10)}');
print('[0,1) 부동소수:${r.nextDouble()}');
print('무작위 불리언:${r.nextBool()}');
}Code language: Dart (dart)
예제 실행 결과
D:\dartdemo\firstdart>dart run
Building package executable...
Built firstdart:firstdart.
pi = 3.141592653589793
e = 2.718281828459045
sin30° = 0.49999999999999994
max(2,9) = 9
min(2,9) = 2
0~9 난수 정수:9
[0,1) 부동소수:0.08331912429354282
무작위 불리언:falseCode language: JavaScript (javascript)
dart:math 라이브러리
Previous: Class Modifiers 클래스 수식자
Next: dart:convert 라이브러리