如何将数字四舍五入为0.6、1.6、2.6,...?

时间:2019-03-15 23:44:57

标签: dart

我希望所有数字都正确。我当然不想输入所有数字。

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

我希望例如达到1.6,则应将其转换为2。我希望所有数字都为true。

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

4 个答案:

答案 0 :(得分:2)

一个班轮

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;
}

答案 1 :(得分:0)

使用round()方法。

  

返回最接近this的整数。

示例

overs = overs.round()

答案 2 :(得分:0)

也许ceil()

  

返回不小于此整数的最小整数。

示例

class computer:public human

答案 3 :(得分:0)

@Amsakanna提供的见解帮助我解决了这个问题。我在这里发布确切的解决方案:

 if ((overs - overs.floor()) > 0.55) 
{
overs = overs - (overs - overs.floor()) + 1; 
}