使用Javascript,我想将用户传递的数字四舍五入到最近的10.例如,如果传递7,我应该返回10,如果33传递,我应该返回30.
我有一个数字,我需要将其舍入到最接近的十次幂.看起来这应该可以在没有一大堆if语句或使用递归或循环的情况下实现,但我不知道最优雅的方法.如果我不清楚我的意思,这里有一些例子:
f(1) === 1
f(5) === 1
f(15) === 10
f(43) === 10
f(456) === 100
f(999) === 100
Run Code Online (Sandbox Code Playgroud)
澄清一下:我不需要10的最接近倍数(不是:10,20,30 ......),而是最接近10的幂(10,100,1000 ......).
编辑:据我所知,这不是一个重复的问题.请停止关闭作为问题的副本,询问有关舍入到最接近的十的倍数.这个问题与相关问题无关,因为它要求舍入到最接近的十次幂.如果您想将此问题作为副本关闭,请查找并链接重复的问题.在我发布问题后30秒左右评论了当前链接的问题,由没有阅读整个问题并仅仅评论抱怨它是重复的人发表评论.那个人已经删除了他的评论(在意识到他错了之后),虽然你可以看到自己和其他人的评论都指出这不是重复.
我知道可以用Math.floor或舍入一个数字Math.round,jquery但是我需要舍入一个非十进制数字。
var num = 89250;
var round = Math.round(num);
Run Code Online (Sandbox Code Playgroud)
显然,这是行不通的,但是没有成功,这可能吗?
例如,我需要四舍五入以下数字:
89250 => 89000
我做了一个把戏,但不想做一个肮脏的工作,也不想十进制数字。
var num = 89250;
var round = Math.round(+num.toLocaleString('en').replace(',', '.'));
var total = round.toFixed(3);
Run Code Online (Sandbox Code Playgroud) javascript ×3