Javascript显示货币而不四舍五入

Ali*_*Ali 1 javascript currency

我在 javascript 中显示货币值,我想用每个值显示 $,我也想用 ,(逗号)表示千位,但我不想四舍五入小数点后的数字,而且我也没有固定的限制许多数字将在小数点后。

它是为 en-AU

例如

45000 -> 45,000 美元

3.6987 -> 3.6987 美元

3 -> 3 美元

4.00 -> 4.00 美元

是否有任何内置的 JavaScript 方法或库可以帮助实现这一目标?

Ema*_*avi 5

我建议使用Intl.NumberFormat

var formatter = new Intl.NumberFormat('en-US', {
   style: 'currency',
   currency: 'USD',
   minimumFractionDigits: 2,      
});

formatter.format(3242); /* $3,242.00 */
Run Code Online (Sandbox Code Playgroud)

您可以配置您的 FractionDigits 甚至您的货币符号:

var formatter = new Intl.NumberFormat('en-US', {
   style: 'currency',
   currency: 'GBP',
   minimumFractionDigits: 4,      
});

formatter.format(3242); /* £3,242.0000 */
Run Code Online (Sandbox Code Playgroud)

更新 :

如果你不能固定你的小数位数,你可以使用maximumFractionDigits并给它一个数量 20 并给它minimumFractionDigits0 的值:

var formatter = new Intl.NumberFormat('en-US', {
   style: 'currency',
   currency: 'GBP',
   minimumFractionDigits: 0,
   maximumFractionDigits: 20,
});

formatter.format(3242.5454); /* £3,242.5454 */
Run Code Online (Sandbox Code Playgroud)