Como converter um duplo em um inteiro no Dart?


105

O seguinte produz o erro abaixo:

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

O tipo de retorno doublenão é um int, conforme definido pelo método calc_ranks. Como faço para arredondar / lançar para um int?

Respostas:



71

Você pode simplesmente usar toInt () para converter a numem um int.

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

Observe que, para fazer exatamente a mesma coisa, você pode usar o operador Truncating division :

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

70

Você pode usar qualquer um dos seguintes.

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

Então, qual é a diferença entre toInt e floor ou round and ceil
Hector Aguero

0

Dart redondo duplo para int

Usando o round()método, podemos obter um inteiro mais próximo de um duplo.

Por exemplo:

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

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

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

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

Você também pode tentar esses métodos converter double para int em um 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

Em primeiro lugar, essa questão não era sobre o que roundsignifica em Dart. Em segundo lugar, o resto das coisas são apenas copiadas da resposta existente . Por favor, não faça spam assim. Você está apenas COPIANDO outras respostas.
iDecode

@iDecode P: "Como converter um duplo em um inteiro no Dart?" Esta resposta: "Usando round () podemos obter um número inteiro mais próximo de um duplo". Por que você acha que a resposta não está relacionada à pergunta?
Ruben

@Ruben Esta resposta já foi fornecida por outro usuário. Não há vantagem em postar a mesma coisa repetidamente.
iDecode

Eu já disse que de agora em diante eu vou cuidar, mesmo assim, por que você está deixando um comentário por votação negativa. Embora o método seja o mesmo nisso, mas tente explicá-lo de forma diferente, desta forma eu dei um exemplo de como pegar o número
Paresh Mangukiya

Neste, tentei explicar como um inteiro está mais próximo de um duplo. por este 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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.