我正在尝试如下计算百分比值,其中count
和size
是整数:
var percent = count * 100 / size as int;
但是我收到一条警告,提示“避免使用as”。我想成为一个整数类型。我该如何重写以避免使用'as'?
答案 0 :(得分:4)
您可以使用截断除法运算符~/
来完成所需的操作。
var percent = count * 100 ~/ size;
答案 1 :(得分:1)
糟糕,事实证明我不能使用'as int',因为int不是double的子类。相反,我需要使用round()方法,该方法返回如下所示的int值:
var percent = (count * 100 / size).round();
答案 2 :(得分:1)
除了Alexandre Ardhuin的答案:
据我所知,dart在投射方面不那么灵活,因此不建议使用(在这种情况下甚至不允许使用)。
您可以改用round()函数:
int count = 1;
int size = 3;
var percent = (count * 100 / size);
print(percent);
int asInt = percent.round();
print(asInt);
或者如果您想要典型的interger rounding
,请使用floor():
int count = 1;
int size = 3;
var percent = (count * 100 / size);
print(percent);
int asInt = percent.floor();
print(asInt);
注意:在这些示例中,百分比是两倍,可以存储以备后用。
ceil
:
int count = 2;
int size = 3;
var percent = (count * 100 / size);
print(percent);
int asIntRound = percent.round();
print(asIntRound);
int asIntFloor = percent.floor();
print(asIntFloor);
int asIntCeil = percent.ceil();
print(asIntCeil);
输出:
66.66666666666667
67
66
67