O seguinte produz o erro abaixo:
int calc_ranks(ranks)
{
double multiplier = .5;
return multiplier * ranks;
}
O tipo de retorno double
não é um int
, conforme definido pelo método calc_ranks
. Como faço para arredondar / lançar para um int
?
(0.57 * 100).toInt()
resolvi56
, então pessoal, tenham cuidado.Você pode simplesmente usar toInt () para converter a
num
em umint
.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;
fonte
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
fonte
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
fonte
round
significa 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.