web-dev-qa-db-ja.com

Dartでdoubleをintに変換する方法は?

以下は、以下のエラーを生成します。

int calc_ranks(ranks)
{
  double multiplier = .5;
  return multiplier * ranks;
}

戻り型doubleは、メソッドcalc_ranksで定義されているintではありません。 intに丸める/キャストする方法は?

37
Todd Chambery

round() メソッドを使用して丸めます:

int calc_ranks(ranks) {
    double multiplier = .5;
    return (multiplier * ranks).round();
}
45
rightfold

単に toInt() を使用して、numintに変換できます。

int calc_ranks(ranks)
{
  double multiplier = .5;
  return (multiplier * ranks).toInt();
}

まったく同じことを行うには、 切り捨て除算演算子 を使用できることに注意してください。

int calc_ranks(ranks) => ranks ~/ 2;
34

次のいずれかを使用できます。

double d = 20.5;

int i = d.toInt(); // i = 20
int i = d.round(); // i = 21
int i = d.ceil();  // i = 21
int i = d.floor(); // i = 20
14
CopsOnRoad