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版
- プログラミング言語の理論を学ぶには … プログラミング言語の基礎概念 (ライブラリ情報学コア・テキスト)