如何在Dart中将双精度转换为整数?
以下操作会产生以下错误:如何在Dart中将双精度转换为整数?,dart,Dart,以下操作会产生以下错误: int calc_ranks(ranks) { double multiplier = .5; return multiplier * ranks; } 返回类型double不是int,如方法calc\u ranks所定义。如何将其舍入/转换为int?使用以下方法将其舍入: 您只需使用将num转换为int int计算等级(等级) { 双乘数=.5; return(乘数*秩).toInt(); } 请注意,要执行完全相同的操作,您可以使用: int计算等级(等
int calc_ranks(ranks)
{
double multiplier = .5;
return multiplier * ranks;
}
返回类型double
不是int
,如方法calc\u ranks
所定义。如何将其舍入/转换为int
?使用以下方法将其舍入:
您只需使用将num
转换为int
int计算等级(等级)
{
双乘数=.5;
return(乘数*秩).toInt();
}
请注意,要执行完全相同的操作,您可以使用:
int计算等级(等级)=>ranks~/2;
您可以使用以下任一选项
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
双掷镖到int 使用
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
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
从字符串到int->
(20.8).round()
对于字符串
double.tryParse(20.8).round()
或者将其截断为int:return(乘数*秩).toInt();(请参阅)@everation我遇到过这样的情况:
(0.57*100)。toInt()
解析为56
,所以伙计们,小心点。那么,toInt和地板或圆形和天花板有什么区别呢?首先,这个问题不是关于圆形在Dart中的意思。第二,其余的东西都是照搬的。请不要这样发垃圾邮件。您只是在复制其他答案。@iDecode Q:“如何在Dart中将一个double转换为一个int?”这个答案是:“使用round()我们可以得到一个最接近double的整数”。为什么你认为答案与问题无关?@Ruben其他用户已经提供了这个答案。一次又一次地发布同样的东西是没有好处的。我已经告诉过你,从现在起我会小心的,即使这样,你为什么要投反对票留下评论呢。虽然这个方法在这方面是相同的,但是试着用不同的方式来解释它,通过这种方式,我给出了一个如何取数字的例子。在这个例子中,我试着解释一个整数如何与一个double最接近。通过此整数num1=(2.3).round();//2 int num2=(2.5).round();//3整数num3=(-2.3).round();//-2 int num4=(-2.5).round();//-3.
double.tryParse(20.8).round()