本教程展示了在Dart和Flutter编程中把Double转换成Int和Int转换成double的多种方法。
Int 是一种原始类型,存储数字的任意精度的有符号整数,没有小数,例如Int类型的值是1,5。
Double 是一个存储IEEE-754双精度浮点数的原始类型。双重类型的例子值是1.34,1.0。
Int 和 Double是不同的类型,持有不同的值。在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提供的内置方法轻松转换数字类型。