狐好きぷろぐらまー

狐好きプログラマーのブログです。

【Dart】小数の桁数を指定して文字列表示する方法【toStringAsFixed()】

こんばんは。 pregum_foxです。

タイトル通りです。

今回の記事はすごい短いですが、よく忘れるのでメモ代わりに書いておきます。

C#では 123.333.ToString("F1"); みたいなことをDartでする時、分からなかったので調べました。

Dart SDKは2.4.1で確認しています。

コードはDartPadに張り付けてCtrl+Enterで実行できます。

結果

Dartでは 123.333.toStringAsFixed(1)でいけます。

String toStringAsFixed(int fractionDigits)のfractionDigitsの値が小数桁数になります。

参考:

api.dartlang.org

似たようなメソッドに
指定した進数で表示するtoRadixString()
指定した指数値で表示するtoStringAsExponential()
指定した精度で表示するtoStringAsPrecision()
があります。

確認用コード

void main() {

  print(3.33.toStringAsFixed(1));

}

toString()のオーバーライドについて

デバッグ時ユーザー定義型のクラスのtoString()をオーバーロードしてデバッグしやすくすることを
C#でやっているので、Dartでもできるのか調べてみたら、C#と同じようにtoString()をオーバーライドしてあげればよいみたいです。

確認用コード

void main() {
  
  var myClass = MyClass(3.3, 2.2);
  print(myClass);

}

class MyClass{
  final num x;
  final num y;
  
  MyClass(this.x, this.y);
  
  @override
  String toString(){
    return 'x : $x, y : $y';
  }
}

// 出力結果
// x : 3.3, y : 2.2

見て頂き、ありがとうございました。

参考サイト