Dartで数値を文字列に変換する方法!【Flutter対応】

Dartで数値を文字列に変換する方法についてまとめています。
Flutterアプリの開発中に「int や double を String に変換したい」と思う場面はよくあるかと思います。

この記事では代表的な変換方法を実際のコードと実行結果をセットで紹介しています。
※ 載せているコードはFlutter 3.29.3 / Dart 3.7.2で動作を確認しています。

この記事でわかることは下記です。

  • toString() メソッドを使った変換
  • toStringAsFixed() メソッドを使った変換(小数点の桁数指定)
  • toStringAsPrecision() メソッドを使った変換(有効桁数の指定)
  • 文字列補間(String Interpolation)を使った変換
  • ${} を使ったより複雑な式の埋め込み

toStringメソッド

もっともシンプルな変換方法です。
int でも double でも使うことができます。

void main() {
  int intValue = 42;
  double doubleValue = 3.14;

  String intStr = intValue.toString();
  String doubleStr = doubleValue.toString();

  print(intStr);    // 42
  print(doubleStr); // 3.14
  print(intStr.runtimeType);    // String
  print(doubleStr.runtimeType); // String
}

toString()を呼び出すだけで、intdoubleString に変換できます。
runtimeType で確認すると、ちゃんとStringになっているのがわかります。

出力結果を確認すると、下記のようになりました。

42
3.14
String
String

toStringAsFixedメソッド

小数点以下の桁数を指定して、文字列に変換したいときに使えます。
金額の表示や計測値の表示などでよく使いそうなメソッドです。

void main() {
  double value = 3.14159;

  print(value.toStringAsFixed(0)); // 3
  print(value.toStringAsFixed(2)); // 3.14
  print(value.toStringAsFixed(4)); // 3.1416
}

引数に指定した桁数で四捨五入された文字列が返ってきます。
toStringAsFixed(2) なら小数点以下2桁まで、toStringAsFixed(0) なら整数部分だけが文字列になります。

確認すると、下記のようになりました。
指定した桁数までの小数点が、文字列として表示されました。

3
3.14
3.1416

toStringAsPrecisionメソッド

有効桁数を指定して、文字列に変換したいときに使えます。
toStringAsFixed()が小数点以下の桁数を指定するのに対して、こちらは 全体の桁数 を指定する点が違います。

void main() {
  double value = 3.14159;

  print(value.toStringAsPrecision(1)); // 3
  print(value.toStringAsPrecision(3)); // 3.14
  print(value.toStringAsPrecision(5)); // 3.1416
}

引数に指定した有効桁数になるように変換されます。
科学的な計算や精度を意識した表示のときに使うと良いかと思います。

確認すると、下記のようになりました。
指定桁数分、文字列に変換されて表示されました。

3
3.14
3.1416

文字列補間(String Interpolation)を使った変換

Dartでは $変数名 を使って文字列の中に変数を埋め込むことができます。
変数が自動的に文字列に変換されるので、シンプルに書きたいときに便利です。

void main() {
  int age = 25;
  double height = 170.5;

  String message = '年齢は $age 歳、身長は $height cm です。';
  print(message);
}

$age$height と書くだけで、変数の値が文字列に埋め込まれます。
toString() を明示的に呼ばなくても変換してくれるので、テンプレート的な文字列を作るときにとても使いやすいです。

確認すると、下記のようになりました。

年齢は 25 歳、身長は 170.5 cm です。

${} を使った式の埋め込み

もう少し複雑な計算式や、メソッドの呼び出し結果を埋め込みたいときは ${} を使うことができます。

void main() {
  double price = 1980.0;
  int quantity = 3;

  String result = '合計金額は ${(price * quantity).toStringAsFixed(0)} 円です。';
  print(result);
}

${} の中に式を書くことで、計算結果をそのまま文字列に埋め込めます。
toStringAsFixed() などのメソッドも組み合わせることができるので、表示形式を整えながら変換したい場合に重宝します。

確認すると、下記のようになりました。

合計金額は 5940 円です。

まとめ

今回はDartで数値を文字列に変換する方法について見ていきました。
場面によって使い分けると良いかと思います。

メソッド 用途
toString() シンプルに変換したいとき
toStringAsFixed(n) 小数点以下の桁数を指定したいとき
toStringAsPrecision(n) 有効桁数を指定したいとき
$変数名 / ${} 文字列の中に埋め込みたいとき

日常的なFlutter開発ではtoString()か文字列補間を使う場面が多いかと思いますが、金額や数値の表示にはtoStringAsFixed()を合わせて使ってみてください。
適切なメソッドを選択して、数値から文字列に変換していきましょう。

コメント