var cultures = []; cultures[0] = { n: 'es-ES', dp: 2, ds: ',', ts: '.', cs: '€', ns: '-' }; Number.prototype.formatCurrency = function(decimalPoints, currencyCulture) {{ if (this == null) return null; var cultureIndex = 0; if (currencyCulture != undefined) { for (i = 0; i < cultures.length; i++) { if (cultures[i].n == currencyCulture) { cultureIndex = i; break; } } } var value = this, decimalPoints = isNaN(decimalPoints = Math.abs(decimalPoints)) ? cultures[cultureIndex].dp : decimalPoints, decimalSeparator = decimalSeparator == undefined ? cultures[cultureIndex].ds : decimalSeparator, thousandSeparator = thousandSeparator == undefined ? cultures[cultureIndex].ts : thousandSeparator, currencySymbol = currencySymbol == undefined ? cultures[cultureIndex].cs : currencySymbol, sign = value < 0 ? cultures[cultureIndex].ns : '', i = parseInt(value = Math.abs(+value || 0).toFixed(decimalPoints)) + '', j = (j = i.length) > 3 ? j % 3 : 0; return sign + currencySymbol + (j ? i.substr(0, j) + thousandSeparator : '') + i.substr(j).replace(/(\d{{3}})(?=\d)/g, '$1' + thousandSeparator) + (decimalPoints ? decimalSeparator + Math.abs(value - i).toFixed(decimalPoints).slice(2) : ''); }};