Javascript 函数将数字四舍五入到最近的;“平滑”;数
从我的观点来看,平滑数的定义:Javascript 函数将数字四舍五入到最近的;“平滑”;数,javascript,Javascript,从我的观点来看,平滑数的定义: 10, 50, 100, 200, 300, 400, ... 1000, 2000, 3000 ... 一万等 我有一些数字(例如,单个数字数组)的动态数据 我不知道这个数字有多大,我想把它四舍五入到最接近的“平滑”数字 例如: 我不想把54四舍五入到50或100。(最好有3个选项:向上取整、向下取整和四舍五入到最近值,例如54到50、94到100) 而像209282938这样的大数字应该四舍五入到200000000或300000000 功能应该是什么样子?选项
10, 50, 100, 200, 300, 400, ... 1000, 2000, 3000 ... 一万等 我有一些数字(例如,单个数字数组)的动态数据 我不知道这个数字有多大,我想把它四舍五入到最接近的“平滑”数字 例如: 我不想把
54
四舍五入到50
或100
。(最好有3个选项:向上取整、向下取整和四舍五入到最近值,例如54到50、94到100)
而像209282938
这样的大数字应该四舍五入到200000000
或300000000
功能应该是什么样子?选项1 您可以使用
.toPrecision()
但基本上你可以指定有效数字的数量,例如
function precise(x) {
return Number.parseFloat(x).toPrecision(1);
}
console.log(precise(54));
// output: "50"
console.log(precise(2051075640));
// output: "2000000000 "
console.log(precise('99.999'));
// output: "100"
选项2 如果希望总是向上取整或向下取整,可以使用
.ceil()
和/或.floor()
注意:这些值四舍五入到最接近的整数,但您可以处理输入以利用它们:
.ceil()
或.floor()
你需要更好地解释你的逻辑。为什么不是54比60呢?@Klimenkomud这很重要,否则我们无法理解你到底想做什么。请注意,在这种情况下,“美化”并不意味着什么,这是我们感到困惑的部分原因。例如,为什么将
54
四舍五入到100
(或60
不重要),但2051075640
四舍五入到3000000000
而不是2051075650
。好吧,但你还是要下决心,无论您现在想要60还是100作为输入值54…完美!我认为玩一点这个游戏会得到最理想的结果,多谢了。这个问题规定54应该是100。这个数字是50。它完美吗?它似乎不符合规定的要求。@Amy我认为这是无意的,这个问题后来被修改了。@Amy我更新了一下我的问题,让它更清楚。我们的想法不是要找到某种具体的解决方案,而是,正如问题标题所说,美化数字。每个人都能理解不同的事物,但一般来说,正如我所想,它可以理解为“最近的平坦/平滑数”。我希望你明白我的想法。