Javascript:向上和向下舍入到最接近的 5,然后找到一个公分母
Javascript: Round up and down to the nearest 5, then find a common denominator
我正在寻找一种方法来向上和向下舍入到最接近的 5,然后找到两个数字的一个很好的公分母。我需要它来为图表上的 y 形 skale 的标题。
这是我到目前为止的代码:
function toN5( x ) {
var i = 1;
while( x >= 100 ) {
x/=10;
i*=10;
}
var remainder = x % 5;
var distance_to_5 = (5 - remainder) % 5;
return (x + distance_to_5) * i;
}
目标是这样的:最大值(四舍五入到最接近的 5)
1379.8 -> 1500
反之亦然 - 最小值(四舍五入到最接近的 5)
41.8 -> 0
然后我想找到一个像 250 或 500 这样的公分母
0 -> 250 -> 500 -> 750 -> 1000 -> 1250 -> 1500
或:
0 -> 500 -> 1000 -> 1500
有没有办法做这样的事情?非常感谢
如果你想将x四舍五入到最接近的500,你可以把它除以500,四舍五入到最接近的整数,然后再次乘以500:
x_rounded = 500 * Math.round(x/500);
要将其四舍五入到最接近的 y,请将 500 替换为 y:
x_rounded = 250 * Math.round(x/250);
希望我的数学是正确的,但这里有各种"四舍五入"的方法
function sigfig(n, sf) {
sf = sf - Math.floor(Math.log(n) / Math.LN10) - 1;
sf = Math.pow(10, sf);
n = Math.round(n * sf);
n = n / sf;
return n;
}
function precision(n, dp) {
dp = Math.pow(10, dp);
n = n * dp;
n = Math.round(n);
n = n / dp;
return n;
}
function nearest(n, v) {
n = n / v;
n = Math.round(n) * v;
return n;
}
演示
使用此 api,您可以使用以下命令将任何数字四舍五入为任何数字的最接近的倍数,向上或向下:
$scm.round(number to be rounded).toNearest(multiple to which you want to round);
例如,如果要将 536 舍入到最接近的 500,则可以使用:
$scm.round(536).toNearest(500);
相关文章:
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 有没有一个抽象层,这样我就可以集成一次,然后使用pusher、pubnub或faye
- 转到另一个页面,然后立即触发ScrollTo
- 多个下载链接到一个zip文件,然后再下载javascript
- 如何将src的值放在一个输入中,然后在另一个页面上显示它
- 在Django中,可以在视图中创建一个包含js的变量,然后在循环模板标记中使用它
- 如何更改javascript的一个变量,然后运行;“加载”;而无需重新加载页面
- 使用javascript从表单发布一个值,然后使用php发布
- 需要一个链接才能转到某个页面,然后快速返回到当前页面
- 在输入字段中选择一个值,然后用相应的数据填充另一个字段
- 如何拆分一个字符串,然后将它们与另一个字符串匹配
- 如何每 10 秒调用一次 JS 函数,然后以角度激活一个函数
- 在每个循环上完成异步调用,然后转到下一个节点 js
- 为什么我们被教导将document.getElementById(“id”)分配给一个变量,然后将该变量与属性一起使用
- 蓝鸟与猫鼬,类型错误:.create(..).然后(..).Nodeify不是一个函数
- 如何自动从一个页面移动到另一个页面,然后回到 html 表格中分页的第一页
- 如何要求用户输入一个介于 1 和 50 之间的整数,然后小程序打印出一行这个星数
- 你如何链承诺,但改变类型从一个然后到另一个
- 给出一个“selected”类.点击另一个然后删除类,如果它是相同的