如何在js中格式化逗号后最多6个数字的数字

How to format a number in js with maximum 6 number after comma

我必须做一个任务,在 js 中 'dot' 之后用逗号分隔每千个数字,最多 6 个数字。例如

12345678.1234567 -> 12,345,678.123457 (need to round)
12345678.1234533 -> 12,345,678.123453
12345678.12      -> 12,345,678.12
12345678.0       -> 12,345,678

我尝试了一些 localeString 和 toFixed

Number(number.toFixed(6)).toLocaleString("en-US");

但总是遇到一些例外,我也不知道如何在点后四舍五入。我该怎么办?

尝试Intl.NumberFormat()

const numbers = [12345678.0, 12345678.12, 12345678.123456, 12345678.1234567];
const f = new Intl.NumberFormat('en-US', { maximumFractionDigits: 6 });

numbers.forEach(n => console.log(f.format(n)));

您可以使用maximumFractionDigits

var number = 12345678.1234567;
const formatted = number.toLocaleString("en", {   
   minimumFractionDigits: 0,
   maximumFractionDigits: 6,
});
console.log(formatted);