掷到最近的飞镖百位

时间:2020-04-21 15:18:55

标签: flutter dart double

在我的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)

2 个答案:

答案 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