преобразовать числовое значение в долларовый формат для отображения в правильном видимом формате - PullRequest
0 голосов
/ 18 сентября 2018

пытается сделать что-то вроде dollarFormat в javascript после вычета некоторого значения, но не получает тип, такой как $8,657.00

так как это небольшая задача, я не хочу использовать для этого какие-либо библиотеки, но мне удалось использовать оповещение для знака $ перед числом, но как управлять суммой и десятичными числами, когда они увеличиваются и помещаются в нужное место где необходимо

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Вы не указали, хотите ли вы достичь этого в CF или JS, поэтому в следующем примере предполагается, что JS.При необходимости вы можете преобразовать логику в CF.

Ниже приведена функция для форматирования числа с использованием REGEX:

function dollarFormat( amount, fractionDigits ) {
    if( isNaN( amount ) || isNaN( fractionDigits ) ) {
        throw 'Invalid arguments';
    }
    
    var splitResults = amount.toFixed( fractionDigits ).split( '.' ),
        integer = splitResults[ 0 ],
        fraction = splitResults[ 1 ] || '';
    return '$' + integer.replace( /([0-9])(?=(?:[0-9]{3})+(?:\.|$))/g, '$1,' ) + ( fraction.length ? '.' + fraction : '' );
}

console.log( dollarFormat( 8657.00, 2 ) );
console.log( dollarFormat( 8657.00, 0 ) );
console.log( dollarFormat( 12234348657.00000, 4 ) );
console.log( dollarFormat( 8657.000000000, 4 ) );
0 голосов
/ 18 сентября 2018

Использование toLocaleString - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toLocaleString

const dollarFormat = (amount) => {
    return amount.toLocaleString('en-US', {
        style: 'currency',
        currency: 'USD',
        minimumFractionDigits: 2
    })
}
 
console.log(dollarFormat(8657))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...