javascript - 在 JavaScript 中格式化货币删除 .00

标签 javascript string format currency-formatting

我目前正在使用以下代码格式化数字以显示为货币值:

return symbol + value.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1,");

其中符号为 £、$ 等,值是具有多个小数位的数字。这很好用,但我现在想删除尾随 .00(如果存在)。

目前我有这个输出:

1.23454 => £1.23
1 => £1.00
50.00001 => £50.00
2.5 => £2.50

我想要以下内容:

1.23454 => £1.23
1 => £1
50.00001 => £50
2.5 => £2.50

是否有比以下更简洁的方法:

var amount = symbol + value.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1,");
return amount.replace(".00", "");

或者那个解决方案是最好的方法吗?

最佳答案

查看Intl.NumberFormat .这是一个非常方便的原生 API。

let number = 1.23454;

console.log(new Intl.NumberFormat('en-GB', {
  style: 'currency',
  currency: 'GBP'
}).format(number).replace(/(\.|,)00$/g, ''));
// → £1.23

关于javascript - 在 JavaScript 中格式化货币删除 .00,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46235907/

相关文章:

javascript - 为什么正则表达式在构造为字符串时停止工作?

javascript - 通过使用 angularjs 和 openweathermap 将数据从旧数组推送到新数组来进行天气预报

javascript - 编译代码中的 '()'是什么东西?

android - 从字符串中获取布局 ID,将不起作用

sorting - 数据表排序货币

html - 格式化 HTML 电子邮件的最佳方式?

python - 转换 pandas 数据框中的日期格式

javascript - Rails 3.1 管理库 javascript 的推荐做法

c - 在 C 中实现字符串的二叉搜索树

Java 修剪字符和空格