很不寻常的四舍五入

Rus*_*kov 0 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;
Run Code Online (Sandbox Code Playgroud)

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

tem*_*def 5

您正在寻找的号码可以找到

  1. 将您的数字乘以20.
  2. 计算您的号码的楼层.
  3. 将你的人数除以20.
  4. 加0.05

例如,⌊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;
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!