在我的flutter应用程序中,我需要四舍五入到最接近的百位数,并认为可能有某种方法可以做到这一点,但我想没有。因此,我在网上搜索了示例或任何答案,但由于所有示例似乎都接近最近的百个,因此至今仍未找到任何答案。我只想这样做并向上取整。也许有一些我忽略的简单解决方案。我已经尝试过double.roundToDouble(),但它对我不起作用。如果有人可以帮助我解决这个问题,我将不胜感激。
如果我的电话号码是199.03,我希望结果四舍五入到200.00。
199.08->200.00
99.30->100.00
14.99->15.00
499.09->500.00
我尝试过的事情
.roundToDouble (this does not work as 199.08.roundToDouble returns as 199.0)
答案 0 :(得分:0)
这是我写的一个例子。您可以通过粘贴dartpad.dev
来尝试 List<double> examples = [
199.08,
99.3,
14.99,
499.09,
];
for (int i = 0; i < examples.length; i++) {
double num = examples[i];
double roundedNumber = num.ceilToDouble();
print("$num -> $roundedNumber");
}
您可以使用ceil
方法来实现。
结果:
199.08 -> 200
99.3 -> 100
14.99 -> 15
499.09 -> 500
答案 1 :(得分:0)
double val = 199.03;
int roundedToNearestHundred = ((val + 50) ~/ 100) * 100).toInt();
void main() {
List<double> v = [
199.03,
1250.00,
1249.99,
1250.01,
49.99,
50.00,
50.01,
];
v.forEach((val) => print((((val + 50) ~/ 100) * 100).toInt()));
}
这将给出结果:
200
1300
1200
1300
0
100
100