javascript - 使用 toLocaleString 在括号中显示数字以表示负值
问题描述
我一直在尝试根据国家/地区更改 AngularJS 应用程序中的数字,并使用.toLocaleString
以下函数在整个应用程序中使用函数
numberValueTransformation(value) {
if (value === 0 || value === undefined) {
return 0;
}
const currencyLocale = this.UserPreferences.getCountryLocale().replace(/fr-FR/g, 'de-DE');
const currencyCode = this.UserPreferences.getCountryCode();
return Number(value).toLocaleString(currencyLocale, {
// style: 'currency',
currency: currencyCode,
minimumFractionDigits: 2
});
}
上面的函数工作得很好,但我需要在整个应用程序的括号中显示负值。我们可以修改.toLocaleString
以获得括号中的负值还是我需要手动更改整个应用程序?我得到的价值是 123456689 美元。但是如果一个负值我得到-$ 123456789,但在这里我想要的值是($ 123456789)<---括号代表减号。
解决方案
您可以自己连接检查,而不是直接返回结果。对正数进行转换,如果原始值小于 0,则用括号括起来:
var absValue = Math.abs(value);
var returnString = Number(absValue).toLocaleString(currencyLocale, {
// style: 'currency',
currency: currencyCode,
minimumFractionDigits: 2
});
return value < 0 ? '(' + returnString + ')' : returnString;
推荐阅读
- java - LongAdder 是 ID 生成器的错误选择吗?
- php - strtolower() 期望参数 1 是字符串,即使它绝对是字符串,也会给出数组
- php - 不能在带有数组的 foreach 循环中使用 htmlspecialchars,为什么?
- javascript - 使用 for 循环更快地分配包含 jquery 选择器的多个变量
- ruby-on-rails - 左外连接导轨在 where 条件下具有急切加载
- struct - Julia:更改函数中选择的可变结构属性
- java - 如何在java8中将对象数组转换为用户定义的对象
- vuejs2 - Vuejs2-从“v-model”获取动态值,计算全部并显示在计算属性中
- wpf - 在运行时将列动态添加到数据网格
- c# - WebSocketOptions 忽略接收缓冲区大小