当金额不是美元货币时,前面不要有 $ 符号
When the amount is not in USD currency don't have the $ symbol in the front
如何在以下函数中添加条件 --> 当货币不是 USD 时,不要在金额前面添加 $ 符号。
var convertToCurrency = number => {
if (!number) return '';
return new Intl.NumberFormat('en', {
style: 'currency',
currency: 'USD'
}).format(number);
};
var amount = {
amount: 10,
currency: "JPY"
};
convertToCurrency(amount["amount"]);
==> .00 JPY
如果我理解你想要什么,你可以在你的函数中添加一个标志 isUSD
或类似的东西,然后执行以下操作。
const convertToCurrency = (number, isUSD) => {
if (!number) return '';
if (isUSD) {
return new Intl.NumberFormat('en', {
style: 'currency',
currency: 'USD'
}).format(number);
} else {
return (Math.round(number * 100) / 100).toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ",");;
}
};
console.log(convertToCurrency(10000, true));
console.log(convertToCurrency(10000, false));
您可以传递可选的布尔值和 return 完整字符串,或者跳过第一个字符($ 符号)(如果是 USD)。
var convertToCurrency = (number, isUsd) => {
if (!number) return '';
var sliceFrom = isUsd ? 1 : 0;
return new Intl.NumberFormat('en', {
style: 'currency',
currency: 'USD',
}).format(number).slice(sliceFrom);
};
convertToCurrency(10000, true);
如果您打算使用其他格式进行货币转换,您还可以传入 format
字符串并进行检查。
所以不要使用 isUsd
,而是使用 currency
var convertToCurrency = (number, currency) => {
if (!number || !currency) return '';
var sliceFrom = currency === 'USD' ? 1 : 0;
return new Intl.NumberFormat('en', {
style: 'currency',
currency,
}).format(number).slice(sliceFrom);
};
convertToCurrency(10000,'USD');
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat
var style = "currency";
var currency = 'USD'; //replace with your dynamic value
var convertToCurrency = (number, style, currency) => {
if (!number) return '';
return new Intl.NumberFormat('en', {
style: style,
currency: currency
}).format(number);
};
console.log(convertToCurrency(10000, style, currency));
var convertToCurrency = (number, currency) => {
if (!number || !currency) return '';
var isUSD = (currency.toUpperCase() === 'USD');
if (isUSD) {
return new Intl.NumberFormat('en', {
style: 'currency',
currency: 'USD',
}).format(number);
} else {
return new Intl.NumberFormat('en', {
style: 'decimal',
}).format(number) + ' ' + currency;
}
};
convertToCurrency(10000, 'USD'); // ",000.00"
convertToCurrency(10000, 'JPY'); // "10,000.00 JPY"
一些备注:
- 您当前的代码(修改
currency
参数)不会生成“$ 100 JPY”,而是“¥100”。不太一样…
- 也许您对输出的调整太多了,应该只使用标准输出。 (最值得注意的是,将所有货币放在左侧或右侧,但避免混合使用)
- 您可能会对 parameter
currencyDisplay: 'symbol' / 'code'
感兴趣。如果可能,前者输出一个符号,如“$”或“¥”,后者输出一个 ISO 代码,如 "USD" 或 "JPY".
如何在以下函数中添加条件 --> 当货币不是 USD 时,不要在金额前面添加 $ 符号。
var convertToCurrency = number => {
if (!number) return '';
return new Intl.NumberFormat('en', {
style: 'currency',
currency: 'USD'
}).format(number);
};
var amount = {
amount: 10,
currency: "JPY"
};
convertToCurrency(amount["amount"]);
==> .00 JPY
如果我理解你想要什么,你可以在你的函数中添加一个标志 isUSD
或类似的东西,然后执行以下操作。
const convertToCurrency = (number, isUSD) => {
if (!number) return '';
if (isUSD) {
return new Intl.NumberFormat('en', {
style: 'currency',
currency: 'USD'
}).format(number);
} else {
return (Math.round(number * 100) / 100).toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ",");;
}
};
console.log(convertToCurrency(10000, true));
console.log(convertToCurrency(10000, false));
您可以传递可选的布尔值和 return 完整字符串,或者跳过第一个字符($ 符号)(如果是 USD)。
var convertToCurrency = (number, isUsd) => {
if (!number) return '';
var sliceFrom = isUsd ? 1 : 0;
return new Intl.NumberFormat('en', {
style: 'currency',
currency: 'USD',
}).format(number).slice(sliceFrom);
};
convertToCurrency(10000, true);
如果您打算使用其他格式进行货币转换,您还可以传入 format
字符串并进行检查。
所以不要使用 isUsd
,而是使用 currency
var convertToCurrency = (number, currency) => {
if (!number || !currency) return '';
var sliceFrom = currency === 'USD' ? 1 : 0;
return new Intl.NumberFormat('en', {
style: 'currency',
currency,
}).format(number).slice(sliceFrom);
};
convertToCurrency(10000,'USD');
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat
var style = "currency";
var currency = 'USD'; //replace with your dynamic value
var convertToCurrency = (number, style, currency) => {
if (!number) return '';
return new Intl.NumberFormat('en', {
style: style,
currency: currency
}).format(number);
};
console.log(convertToCurrency(10000, style, currency));
var convertToCurrency = (number, currency) => {
if (!number || !currency) return '';
var isUSD = (currency.toUpperCase() === 'USD');
if (isUSD) {
return new Intl.NumberFormat('en', {
style: 'currency',
currency: 'USD',
}).format(number);
} else {
return new Intl.NumberFormat('en', {
style: 'decimal',
}).format(number) + ' ' + currency;
}
};
convertToCurrency(10000, 'USD'); // ",000.00"
convertToCurrency(10000, 'JPY'); // "10,000.00 JPY"
一些备注:
- 您当前的代码(修改
currency
参数)不会生成“$ 100 JPY”,而是“¥100”。不太一样… - 也许您对输出的调整太多了,应该只使用标准输出。 (最值得注意的是,将所有货币放在左侧或右侧,但避免混合使用)
- 您可能会对 parameter
currencyDisplay: 'symbol' / 'code'
感兴趣。如果可能,前者输出一个符号,如“$”或“¥”,后者输出一个 ISO 代码,如 "USD" 或 "JPY".