如何在Dart中把Double转换为Int或把Int转换成double?

6,199 阅读3分钟

本教程展示了在Dart和Flutter编程中把Double转换成Int和Int转换成double的多种方法。

Int 是一种原始类型,存储数字的任意精度的有符号整数,没有小数,例如Int类型的值是1,5。

Double 是一个存储IEEE-754双精度浮点数的原始类型。双重类型的例子值是1.34,1.0。

IntDouble是不同的类型,持有不同的值。在Dart编译器中不会发生自动转换。

我们必须手动将一种类型转换为其他类型。

在Dart编程中如何将Double转换为Int类型?

在Dart编程中,我们有多种方法可以将double解析为int。

  • double toInt()方法double.toInt()方法从一个给定的双数中去除小数,并返回int。

语法:

Int toInt()

下面是一个Double toInt() Example

main() {
  double double1 = 3.4;
  print(double1.runtimeType); // double
  int i1 = double1.toInt();
  print(i1); // 3
  print(i1.runtimeType); // int
}

double.truncate()方法也忽略了小数点,并返回int值。

语法:

int truncate()

这里有一个double trucate() example program

main() {
  double double1 = 12.9;
  print(double1.runtimeType); // double
  int i1 = double1.truncate();
  print(i1); // 12
  print(i1.runtimeType); // int
}

另一种方法,有一些方法 - round(), ceil(), floor()可以在dart和flutter中对一个给定的双数进行取整。

  • 使用round(),ceil(),floor()对一个数字进行舍入。

    • round() methodRound(): 返回最接近的int数字。例如,6.5.round()返回7。

    这里有一个round() method example program

    main() {
  double double1 = 12.9;
  double double2 = 3.4;

  print(double1.runtimeType); // double
  print(double2.runtimeType); // double

  int i1 = double1.round();
  print(i1); // 13
  print(i1.runtimeType); // int
  int i2 = double2.round();
  print(i2); // 3
  print(i2.runtimeType); // int
}
  • ceil()方法:返回一个给定int部分的上限数字。例如,9.5.round()返回10。

这里有一个ceil() method example program

    main() {
  double double1 = 12.9;
  double double2 = 3.4;

  print(double1.runtimeType); // double
  print(double2.runtimeType); // double

  int i1 = double1.ceil();
  print(i1); // 13
  print(i1.runtimeType); // int
  int i2 = double2.ceil();
  print(i2); // 4
  print(i2.runtimeType); // int
}
  • floor()方法:返回四舍五入的底数,即给定int部分的下限。例如,9.5.round()返回9。

这里有一个floor() method example program

main() {
  double double1 = 12.9;
  double double2 = 3.4;

  print(double1.runtimeType); // double
  print(double2.runtimeType); // double

  int i1 = double1.floor();
  print(i1); // 12
  print(i1.runtimeType); // int
  int i2 = double2.floor();
  print(i2); // 3
  print(i2.runtimeType); // int
}

所有上述方法在flutter编程中都可以将双数转换为英数。

如何在Dart或Flutter中将int解析为double?

例如,将int值直接分配给double值,会出现错误**A type of 'int' can't be assigned to a variable of type 'double'.**对于下面的代码。

  int number = 10;
  double dd=number;

以下是在flutter或dart中将int类型转换为double的多种方法。

toDouble()方法的int可以被分配到double类型。下面是一个例子。

main() {
  int number = 10;
  double d1 = number.toDouble();
  print(d1); //10
  print(d1.runtimeType); //10
}

首先得到一个数字的字符串版本,然后将这个字符串传递给double.parse(),分配给双倍数。

main() {
  int number = 10;
  double d1 = double.parse(number.toString());
  print(d1); //10
}
  • 使用1的除法运算符

这很简单,因为所有的除法操作的结果都是Double flutter。

整数与1相除的结果是一个双倍类型的值。下面是一个例子。

main() {
  int number = 10;
  double d1 = number/1;
  print(d1); //10
}

结论

综上所述,我们可以用int和double提供的内置方法轻松转换数字类型。