我想知道如何有效地从价格中删除小数零,同时保留2位小数,如果有
因此,如果价格为135.00
,则应为135
。
如果价格为135.30
,则应保留两位小数。
如果价格为135.38
,则可以保留小数。
这就是我现在所拥有的:
const currency = 'EUR';
const language = 'NL';
var localePrice = (amount) => {
const options = {
style: 'currency',
currency: currency
};
return amount.toLocaleString(language, options);
}
现在我可以使用正则表达式或类似的东西,但我希望有一种更简单的方法来完成这项工作。
我已经制作了一个JSFiddle来说明我的问题,这使得使用代码变得容易。
答案 0 :(得分:1)
您可以添加一个函数来检查数字是否为整数,并使用localePrice函数中的条件来应用格式化(使用切片来删除小数):
function isInt(n) {
return n % 1 === 0;
}
const currency = 'EUR';
const language = 'NL';
var localePrice = (amount) => {
const options = {
style: 'currency',
currency: currency
};
if (isInt(amount)){
return amount.toLocaleString(language, options).slice(0, -3);
}
else {
return amount.toLocaleString(language, options);
}
}
document.querySelector('.price').innerHTML = localePrice(135.21);
document.querySelector('.price-zeroes').innerHTML = localePrice(135.00);
document.querySelector('.price-with-one-zero').innerHTML = localePrice(135.30);
答案 1 :(得分:1)
尝试仅将minimumFractionDigits: 0
添加到您的选项中,例如:
const currency = 'EUR';
const language = 'NL';
var localePrice = (amount) => {
const options = {
style: 'currency',
currency: currency,
minimumFractionDigits: 0
};
return amount.toLocaleString(language, options);
}