Làm thế nào để chuyển đổi một double thành một int trong Dart?


98

Sau đây tạo ra lỗi dưới đây:

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

Kiểu trả về doublekhông phải là a int, như được định nghĩa bởi phương thức calc_ranks. Làm cách nào để làm tròn / truyền thành một int?

Câu trả lời:



68

Bạn chỉ cần sử dụng toInt () để chuyển đổi a numthành an int.

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

Lưu ý rằng để thực hiện chính xác điều tương tự, bạn có thể sử dụng toán tử phân chia Cắt ngắn :

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

66

Bạn có thể sử dụng bất kỳ cách nào sau đây.

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

Vì vậy, sự khác biệt giữa toInt và sàn hoặc tròn và dừng
Hector Aguero

0

Vòng phi tiêu gấp đôi thành int

Sử dụng round()phương pháp này, chúng ta có thể nhận được một số nguyên gần nhất với một số kép.

Ví dụ:

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

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

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

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

Bạn cũng có thể thử các phương thức chuyển đổi double sang int trong 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

Đầu tiên, câu hỏi này không phải về roundphương tiện trong Dart. Thứ hai, những thứ còn lại chỉ được sao chép từ câu trả lời hiện có . Xin đừng spam SO như thế này. Bạn chỉ đang SAO CHÉP các câu trả lời khác.
iDecode

@iDecode Q: "Làm thế nào để chuyển đổi một double thành một int trong Dart?" Câu trả lời này: "Sử dụng round (), chúng ta có thể nhận được một số nguyên gần nhất với một đôi". Sao bạn nghĩ câu trả lời không liên quan đến câu hỏi?
Ruben

@Ruben Câu trả lời này đã được cung cấp bởi người dùng khác. Không có lợi ích gì khi đăng đi đăng lại cùng một thứ.
iDecode

Tôi đã nói với bạn rằng từ bây giờ tôi sẽ chăm sóc, thậm chí sau đó tại sao bạn lại để lại bình luận bằng cách bỏ phiếu xuống. Mặc dù phương pháp này giống nhau, nhưng hãy cố gắng giải thích nó theo cách khác, theo cách này, tôi đã đưa ra một ví dụ về cách lấy số
Paresh Mangukiya

Trong phần này, tôi đã cố gắng giải thích cách một số nguyên gần nhất với một số kép. bởi 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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.