将数字四舍五入至最接近的千位

Ped*_*ram 1 javascript

我知道可以用Math.floor或舍入一个数字Math.roundjquery但是我需要舍入一个非十进制数字。

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)

tri*_*cot 6

首先将您的数字除以1000,然后四舍五入并再次相乘:

var num = 89250;
var rounded = Math.round(num / 1000) * 1000;
Run Code Online (Sandbox Code Playgroud)

如果您希望使用其他打破平局的方法 -将舍入的舍入取整而不是向上舍入-请在取整前后的数字上应用负运算符。比较输出的差异:

var num = 89250;
var rounded = Math.round(num / 1000) * 1000;
Run Code Online (Sandbox Code Playgroud)

  • 这是不太常见的行为。89500 之后的第一个四舍五入为 90000 的数字是什么?无论如何,我添加了一个解决方案,该解决方案仅针对关系更改舍入。 (2认同)