Dartの数値型はnumインタフェースで表現されます。このインタフェースを継承する型として、intとdoubleがあります。
intは任意のサイズで表現され、doubleはIEEE 754 standard で定義されている64bitで表現されています。intだけが浮動小数点をもちません。この型は、Listの添字で利用できます。他の型は浮動小数点を持ちます。
numの初期値は、0ではなく、nullになります。次の例では「(a == null).toString()」はtrueとなります。絶対値を求めるabs()や、切り上げるceil()、切り捨てるfloor()もあります。他の処理をしたい場合は、Mathクラスのメソッドを確認してみれば良いでしょう。
void main() {
num a;
print((a == null).toString()); // true
double x = 1.41421356;
print("x.abs() : ${x.abs()}");
print("x.ceil() : ${x.ceil()}");
print("x.floor() : ${x.floor()}");
num y = 1.234;
num e0 = 1.23e4;
print("y:${y}, e0:${e0}");
// 数字をint型へ変換
int n = Math.parseInt("1");
// 数字をdouble型へ変換
double d = Math.parseDouble("3.14159");
// int型を数字へ変換
String ns = 1.toString();
// double型を数字へ変換
String ds = x.toStringAsFixed(2);
print("n:${n}, d:${d}, ns:${ns}, ds:${ds}");
}
「e0 = 1.23e4」は、「1.23へ10の4乗をかけた値をe0へ代入する」ということになります。数字をint型やdouble型へ変換するメソッドはMathクラスにあります。int型やdouble型を数字に変換するには、toString()やtoStringAsFixed()があります。なお、Webアプリで、入力値を数値へ変換したい場合は、HTMLInputElement.valueAsNumber() を使うという手もあります。
実行結果は次の通り
true x.abs() : 1.41421356 x.ceil() : 2.0 x.floor() : 1.0 y:1.234, e0:12300.0 n:1, d:3.14159, ns:1, ds:1.41
- クラスベースのオブジェクト指向プログラミング言語の基礎を学ぶには … 改訂版 基礎Java(CD-ROM付) (IMPRESS KISO SERIES)
- クラスベースのオブジェクト指向プログラミング言語を学ぶには … プログラミング言語Java (The Java Series)
- 関数型プログラミング言語を学ぶには … Scalaスケーラブルプログラミング第2版
- プログラミング言語の理論を学ぶには … プログラミング言語の基礎概念 (ライブラリ情報学コア・テキスト)