JavaScript:始终从函数(货币支持)返回 .toFixed(2)

JavaScript: Always return .toFixed(2) from a function (currency support)

本文关键字:返回 toFixed 支持 货币 函数 JavaScript      更新时间:2023-09-26

没有办法在 Node/JavaScript 中发出信号,表明变量应始终返回.toFixed(2) . 即货币类型。

请参阅以下示例函数:

let PER_SHARE_COMMISSION = 0.005; // USD
let MINIMUM_COMMISSION_PER_ORDER = 1.00; // USD
let MAXIMUM_PERCENT_OF_ORDER = 0.005; // 0.5%
exports.commission = function(price, shares) {
    let commish = shares * PER_SHARE_COMMISSION;
    if(commish < MINIMUM_COMMISSION_PER_ORDER) {
        return MINIMUM_COMMISSION_PER_ORDER.toFixed(2);
    }
    var maxCommish = shares * price * MAXIMUM_PERCENT_OF_ORDER;
    if(commish > maxCommish) {
        return maxCommish.toFixed(2);
    }
    return commish.toFixed(2);
};

看看我如何在返回值之前手动.toFixed(2)放在任何地方。这很容易出错。这有没有模式?

这基本上是我正在寻找的解决方案:

currency(1) // "1.00"
currency(23.3433) // "23.34"
currency(87.3987) // "87.40"
currency(12342.453) // "12342.45"
function currency(input) {
    return new Intl.NumberFormat('en-US', {
        style: 'decimal',
        currency: 'USD',
        minimumFractionDigits: 2,
        maximumFractionDigits: 2,
        useGrouping: false
    }).format(input);
}