¿Cómo convertir un doble a un int en Dart?


96

Lo siguiente produce el siguiente error:

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

El tipo de retorno doubleno es a int, según lo definido por el método calc_ranks. ¿Cómo redondeo / lanzo a un int?

Respuestas:



68

Simplemente puede usar toInt () para convertir un numen un 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 Truncar :

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

65

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

Entonces, ¿cuál es la diferencia entre toInt y floor o round y ceil
Hector Aguero hace

0

Dardo redondo doble a int

Usando el round()método, podemos obtener un número entero más cercano a un doble.

Por ejemplo:

int num1 = (2.3).round();
// 2

int num2 = (2.5).round();
// 3

int num3 = (-2.3).round();
// -2

int num4 = (-2.5).round();
// -3

También puede intentar que esos métodos conviertan double a int en un Flutter

  double x = 2.5;
 
  int a = x.toInt();
  int b = x.truncate();
  int c = x.round();
  int d = x.ceil();
  int e = x.floor();
 
  print(a); // 2
  print(b); // 2
  print(c); // 3
  print(d); // 3
  print(e); // 2

Primero, esta pregunta no se trataba de qué roundsignifica en Dart. En segundo lugar, el resto de las cosas solo se copian de la respuesta existente . Por favor, no envíes spam TAN así. Solo COPIAS otras respuestas.
iDecode hace

@iDecode P: "¿Cómo convertir un doble en un int en Dart?" Esta respuesta: "Usando round () podemos obtener un número entero más cercano a un doble". ¿Por qué cree que la respuesta no está relacionada con la pregunta?
Ruben hace

@Ruben Esta respuesta ya la ha proporcionado otro usuario. No hay ningún beneficio en publicar lo mismo una y otra vez.
iDecode hace

Ya les he dicho que de ahora en adelante me ocuparé, incluso entonces, ¿por qué dejan un comentario en contra de la votación? Si bien el método es el mismo en esto, pero trato de explicarlo de manera diferente, de esta manera he dado un ejemplo de cómo tomar el número
Paresh Mangukiya hace

En esto he tratado de explicar cómo un número entero está más cerca de un doble. por esto int num1 = (2.3) .round (); // 2 int num2 = (2.5) .round (); // 3 int num3 = (-2,3) .round (); // -2 int num4 = (-2.5) .round (); // -3
Paresh Mangukiya hace
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.