How to convert a double to an int in Dart?

Round it using the round() method:

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

You can use any of the following.

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

You can simply use toInt() to convert a num to an int.

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

Note that to do exactly the same thing you can use the Truncating division operator :

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

I see a lot of answers, but with less description. Hope my answer will add some value. Lets initalize the variable, and see how it will change with different methods.

 double x = 8.5;

toInt()

It truncates the decimal value.

 int a = x.toInt();
 print(a); // 8

truncate()

It also truncates the decimal value.

 int b = x.truncate();
 print(b); // 8

round()

It returns the closest integer. It uses half up rounding mode.

  int c = x.round();
  print(c); // 9

ceil()

It returns the closest integer greater than the value.

  int c = x.ceil();
  print(c); // 9

floor()

It returns the closest integer smaller than the value.

  int c = x.floor();
  print(c); // 8