首页 > 解决方案 > 如何在 0.6、1,6、2,6、...处舍入数字?

问题描述

我希望这适用于所有数字。当然,我不想为所有数字都输入这个。

 if (overs == 0.6) {
  overs = 1.0;
}

我希望如果达到例如 1.6,它应该转换为 2。我希望这对所有数字都是正确的。

进一步澄清:我不希望它在例如 0.5 处舍入,我希望它在 0.6 处舍入

标签: dart

解决方案


一个班轮

double roundAt6(double n) => (n - n.floor()) > 0.5 ? n.ceil() : n;

详细的

void main() {
  final double overs = 5.6;
  print('result: ${roundAt6(overs)}');
}

double roundAt6(double n) {
  final double decimalPart = n - n.floor();
  print('decimal part: $decimalPart');
  final bool didExceed = decimalPart > 0.5;
  print('didExceed: $didExceed');
  return didExceed ? n.ceil() : n;
}

推荐阅读