initial: bootstrap from BukidBountyApp base
This commit is contained in:
25
resources/js/utils/currency.js
Normal file
25
resources/js/utils/currency.js
Normal file
@@ -0,0 +1,25 @@
|
||||
/**
|
||||
* Formats a number as Philippine Peso currency (PHP) with commas and optional decimals.
|
||||
*
|
||||
* @param {number} number - The numeric value to format
|
||||
* @param {boolean} [withDecimal=true] - Whether to include decimal places
|
||||
* @returns {string} - Formatted currency string (e.g., "P1,234.56")
|
||||
*
|
||||
* @example
|
||||
* formatCurrency(1234.56) // "P1,234.56"
|
||||
* formatCurrency(1234.56, false) // "P1,234"
|
||||
*/
|
||||
export function formatCurrency(number, withDecimal = true) {
|
||||
if (isNaN(number)) return 'P0'
|
||||
|
||||
let [integerPart, decimalPart] = Number(number)
|
||||
.toFixed(2)
|
||||
.toString()
|
||||
.split('.')
|
||||
|
||||
if (!withDecimal) decimalPart = ''
|
||||
|
||||
integerPart = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, ',')
|
||||
|
||||
return `P${integerPart}${decimalPart ? '.' + decimalPart : ''}`
|
||||
}
|
||||
Reference in New Issue
Block a user