Skip to content

Instantly share code, notes, and snippets.

@datapimp
Created February 2, 2011 03:50
Show Gist options
  • Select an option

  • Save datapimp/807208 to your computer and use it in GitHub Desktop.

Select an option

Save datapimp/807208 to your computer and use it in GitHub Desktop.
Site.util.number_to_currency = function num2money(n_value) {
// validate input
if (isNaN(Number(n_value))) return 'ERROR';
// save the sign
var b_negative = Boolean(n_value < 0);
n_value = Math.abs(n_value);
// round to 1/100 precision, add ending zeroes if needed
var s_result = String(Math.round(n_value * 1e2) % 1e2 + '00').substring(0, 2);
// separate all orders
var b_first = true;
var s_subresult;
while (n_value >= 1) {
s_subresult = (n_value >= 1e3 ? '00': '') + Math.floor(n_value % 1e3);
s_result = s_subresult.slice( - 3) + (b_first ? '.': ',') + s_result;
b_first = false;
n_value = n_value / 1e3;
}
// add at least one integer digit
if (b_first) s_result = '0.' + s_result;
// apply formatting and return
return b_negative ? '($' + s_result + ')': '$' + s_result;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment