我想从给定的double
中根据某些规则获得下一个最高编号,由于我在描述它们时遇到一些困难,因此我将通过示例进行说明:
Input Desired output
------- --------------
0.08 0.1
0.2 0.5
5 10
7 10
99 100
100 500
2345 5000
在某种意义上,输出应为“5或10的下一个最高倍数”。
我希望这是可以理解的;如果没有,请告诉我。
实现将在java中进行,输入将为正
double
。 最佳答案
function top5_10 (x) {
var ten = Math.pow(10, Math.ceiling(Math.ln(x)/Math.LN10)));
if (ten > 10 * x) { ten = ten / 10; }
else if (ten <= x) { ten = 10 * ten; }
return x < ten / 2 ? ten / 2 : ten;
}
或类似的东西:-)