文字列から数値を得る
整数(int)を得る場合はMath.parseInt、小数を得る場合には Math.parseDouble を使います。サンプルコード
main() { int i = Math.parseInt("123"); double d = Math.parseDouble("1.23"); print("i=$i, d=$d"); }変換に失敗するとBadNumberFormatException例外が発生します。
数値リテラルとして表現可能な文字列が変換可能なようですので、次のような変換もできます。サンプルコード
main() { // 大きな数(1e+30) print(Math.parseInt("1000000000000000000000000000000")); // 16進数(10) print(Math.parseInt("0xA")); // 指数表現(10) print(Math.parseDouble("1e+1")); }
数値から文字列を得る
単純に文字列リテラルとして、あるいはtoStringメソッドで変換できます。
main() { int i = 1; print("$i, ${i.toString()}"); // 1, 1 }書式を指定するにはnumクラスに用意されている次のメソッドを使います。
サンプルコード
void main() { print("123=${123.toRadixString(10)}(10)"); // 123(10) print("123=${123.toRadixString(16)}(16)"); // 7b(16) print("123=${123.toStringAsExponential(1)}"); // 1.2e+2 print("123=${123.toStringAsExponential(2)}"); // 1.23e+2 print("123=${123.toStringAsExponential(3)}"); // 1.230e+2 print("123.45=${(123.45).toStringAsFixed(1)}"); // 123.5 print("123.45=${(123.45).toStringAsFixed(2)}"); // 123.45 print("123.45=${(123.45).toStringAsFixed(3)}"); // 123.450 print("123.45=${(123.45).toStringAsPrecision(2)}"); // 1.2e+2 print("123.45=${(123.45).toStringAsPrecision(3)}"); // 123 print("123.45=${(123.45).toStringAsPrecision(4)}"); // 123.5 }
0 件のコメント:
コメントを投稿