Як перетворити дубль на int у Dart?


98

Нижче наведено помилку нижче:

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

Тип повернення doubleне є int, як визначено методом calc_ranks. Як я округлюю / кидаю на int?

Відповіді:


130

Округліть його round()методом:

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

13
Або скоротити його до int: return (множник * ранги) .toInt (); (див. api.dartlang.org/docs/channels/stable/latest/dart_core/… )
Евертон,

2
@Evertion У мене були випадки, коли це (0.57 * 100).toInt()вирішували 56, тому, хлопці, будьте обережні.
最 白 目

68

Ви можете просто використовувати toInt () для перетворення a numу int.

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

Зверніть увагу, що для того, щоб зробити абсолютно те саме, ви можете використовувати оператор поділу усічених :

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

66

Ви можете використовувати будь-що з наведеного нижче.

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

Отже, яка різниця між toInt та підлогою або круглою та стелею
Гектор Агуеро,

0

Дартс круглий подвійний до внутріш

Використовуючи round()метод, ми можемо отримати ціле число, найближче до подвійного.

Наприклад:

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

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

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

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

Ви також можете спробувати, щоб ці методи перетворили double у int у 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

По-перше, це питання не стосувалось того, що roundозначає "Дарт". По-друге, решта речей копіюється лише з наявної відповіді . Будь ласка, не надсилайте спам так. Ви лише КОПІЮЄТЕ інші відповіді.
iDecode

@iDecode Q: "Як перетворити дубль на int у Dart?" Ця відповідь: "Використовуючи round (), ми можемо отримати ціле число, найближче до подвійного". Як ви вважаєте, що відповідь не пов’язана з питанням?
Рубен

@Ruben Цю відповідь уже надав інший користувач. Немає користі від того, щоб публікувати одне і те ж знову і знову.
iDecode

Я вже казав вам, що відтепер я буду дбати, навіть тоді чому ви залишаєте коментар шляхом голосування вниз. Хоча метод у цьому однаковий, але спробуйте пояснити це інакше, таким чином я
навів

У цьому я намагався пояснити, як ціле число найближче до подвійного. за цим int num1 = (2.3) .round (); // 2 int num2 = (2.5) .round (); // 3 int num3 = (-2.3) .round (); // -2 int num4 = (-2.5) .round (); // -3
Пареш Мангукія
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.