¿Cómo convertir un doble a un int en Dart?
Lo siguiente produce el siguiente error:
int calc_ranks(ranks)
{
double multiplier = .5;
return multiplier * ranks;
}
El tipo de retorno double
no es a int
, tal como lo define el método calc_ranks
. ¿Cómo redondeo/lanzo a un int
?
Redondealo usando el round()
método:
int calc_ranks(ranks) {
double multiplier = .5;
return (multiplier * ranks).round();
}
Puede utilizar cualquiera de los siguientes.
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
Simplemente puedes usar toInt() para convertir a num
en int
.
int calc_ranks(ranks)
{
double multiplier = .5;
return (multiplier * ranks).toInt();
}
Tenga en cuenta que para hacer exactamente lo mismo puede utilizar el operador de división truncada :
int calc_ranks(ranks) => ranks ~/ 2;
Veo muchas respuestas, pero con menos descripción. Espero que mi respuesta agregue algún valor. Inicialicemos la variable y veamos cómo cambiará con diferentes métodos.
double x = 8.5;
toInt()
Trunca el valor decimal.
int a = x.toInt();
print(a); // 8
truncar()
También trunca el valor decimal.
int b = x.truncate();
print(b); // 8
redondo()
Devuelve el número entero más cercano. Utiliza el modo de redondeo a la mitad.
int c = x.round();
print(c); // 9
fortificar techo()
Devuelve el número entero más cercano mayor que el valor.
int c = x.ceil();
print(c); // 9
piso()
Devuelve el número entero más cercano menor que el valor.
int c = x.floor();
print(c); // 8