humanInt
Make large numbers readable
by Bart Kalisz
HTML
<input id="in" type="number" value="3224" />
<input id="out" type="text" />
CSS
input {
font-size: 20px
}
JavaScript
function humanInt(n, p) {
var nAbs = Math.abs(n);
if (nAbs < 1e3) return n;
var s = [ "k", "M", "G", "T", "P", "E", "Z", "Y" ],
sign = Math.sign(n), i = s.length, t;
for (i; i >= 0; i--) {
t = Math.pow(1e3, i);
if (nAbs >= t) {
return (sign * nAbs / t)
.toFixed(p || ((nAbs % t) >= (t / 20) ? 1 : 0))
.concat(s[i - 1]);
}
}
};
Number.prototype.humanInt = function(p) {
return humanInt(this, p);
};
function update() {
var input = document.getElementById("in"),
output = document.getElementById("out"),
writeToOutput = function() {
output.value = Number(input.value).humanInt();
};
input.oninput = writeToOutput;
writeToOutput();
}
update();