Dart: Structured web apps [13] 数値型

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

同じタグの記事: Dart
同じタグの記事: dartlang
同じカテゴリの記事: Program