Skip to content

Instantly share code, notes, and snippets.

@MartinMuzatko
Last active August 15, 2024 05:13
Show Gist options
  • Save MartinMuzatko/1060fe584d17c7b9ca6e to your computer and use it in GitHub Desktop.
Save MartinMuzatko/1060fe584d17c7b9ca6e to your computer and use it in GitHub Desktop.
JS Commarization, Number to words from Million, Billion, Trillion.... and extendible
function commarize()
{
// 1e6 = 1 Million, begin with number to word after 1e6.
if (this >= 1e6)
{
var units =
[
"Million",
"Billion",
"Trillion",
"Quadrillion",
"Quintillion",
"Sextillion",
"Septillion",
"Octillion"
// ... Put others here, you can look them up here:
// http://bmanolov.free.fr/numbers_names.php
// If you prefer to automate the set of numbers, look at the number vocabulary:
// https://gist.github.com/MartinMuzatko/1b468b7596c71e83838c
// Javascript allows plain numbers to a maximum of ~1.79e308
]
// Divide to get SI Unit engineering style numbers (1e3,1e6,1e9, etc)
var unit = Math.floor((this / 1000).toFixed(0).toString().length)
// Calculate the remainder. 1,000,000 = 1.000 Mill
var num = (this / ('1e'+(unit+2))).toFixed(3)
var unitname = units[Math.floor(unit / 3) - 1]
// output number remainder + unitname
return num + ' ' + unitname
}
// Split floating number
var parts = this.toString().split(".")
// Only manipulate first part (not the float number)
// If you prefer europe style numbers, you can replace . with ,
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",")
return parts.join(".")
}
// Add method to prototype. this allows you to use this function on numbers and strings directly
Number.prototype.commarize = commarize
String.prototype.commarize = commarize
@gustavodelamou
Copy link

I just want an example in HTML code please if it's possible

@nikhilroy2
Copy link

nikhilroy2 commented Jan 15, 2020

how can I define the code inside chart js?

options: {
scales: {
yAxes: [{
ticks: {
// Include a dollar sign in the ticks
callback: function(value, index, values) {
return String(value).commarize();

                }
            }
        }]
    }
}

it's not working please give me the solution

@MartinMuzatko
Copy link
Author

For the sake of history I leave this script here, but seriously. Use something like numeral.js to format numbers. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment