web-dev-qa-db-fra.com

Comment convertir un double en int dans Dart?

Ce qui suit produit l'erreur ci-dessous:

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

Le type de retour double n'est pas un int, tel que défini par la méthode calc_ranks. Comment arrondir/convertir en int?

37
Todd Chambery

Arrondissez-le en utilisant la méthode round() :

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

Vous pouvez simplement utiliser toInt () pour convertir un num en int.

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

Notez que pour faire exactement la même chose, vous pouvez utiliser Opérateur de division tronquée :

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

Vous pouvez utiliser l'un des éléments suivants.

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