Как преобразовать double в int в Dart?

Следующее вызывает следующую ошибку:

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

Возвращаемый тип double не int, как определено методом calc_ranks. Как мне округлить/привести к int?

Ответ 1

Завершить его, используя метод round():

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

Ответ 2

Вы можете просто использовать toInt() для преобразования num в int.

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

Обратите внимание, что для того, чтобы сделать то же самое, вы можете использовать оператор усечения деления:

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

Ответ 3

Вы можете использовать любой из следующих.

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