很不寻常的四舍五入

时间:2012-02-14 04:22:25

标签: java math rounding

你有没有做过这样的四舍五入:

  • [0.95,1]轮到1
  • [0.90,0.95]轮到0.95
  • [0.85,0.90]舍入至0.90
  • [0.80,0.85]轮到0.85

我试着这样做:

double rounded = Math.round(x * 20.0) / 20.0;

但它有点不同,例如它在0.91到0.90之间,我宁愿需要它来回合0.91到0.95

1 个答案:

答案 0 :(得分:5)

您正在寻找的号码可以通过

找到
  1. 将您的号码乘以20。
  2. 计算您的电话号码。
  3. 将您的号码除以20。
  4. 添加0.05
  5. 例如,⌊0.95*20⌋/ 20 + 0.05 =⌊19⌋/ 20 + 0.05 = 0.95 + 0.05 = 1.00。

    在Java中:

    double result = Math.floor(x * 20.0) / 20.0 + 0.05;
    

    希望这有帮助!