0.1
или 0.000027777391980666935
.0.0
– что не очень правда и не подходит для меня.0.00003
– что мне подходит.144004
возвращает 1.4e+5
– это не подходит.console.log(0.000027777391980666935.toPrecision(2)); // 0.000028
console.log((144004).toPrecision(2)); //1.4e+5
123 > 123
123.98 > 123.98
123.987654321 > 123.98
123.000000321 > 123.0000003
0.12345678890 > 0.12
// Making value more human look
function humanizationNumber(value, decimalsLimit) {
var result = false;
var parts = value.toString().split('.');
var integer = parts[0];
var decimals = parts[1];
if (!(1 in parts)) {
// Value is nice looking integer
result = value
} else {
// Humanizing the decimals
var decimalsValue = decimals.split('');
var rationalLimit = decimalsLimit;
if (decimalsLimit > decimalsValue.length) {
// Do not round value under the limit
result = value
} else if ((Math.abs(integer) > 0) || (decimalsValue[0] > 0)) {
// Rounding to decimalsLimit
if ((Math.abs(integer) < 1) && (decimalsLimit < 1)) rationalLimit++;
result = parseFloat(parseFloat(integer + '.' + decimalsValue.join('')).toFixed(rationalLimit))
} else {
// Rounding to the first meaningful value
for (var count = 0; decimalsValue[count] < 1; count++) {
if (decimalsLimit <= count + 1) rationalLimit = count + 2;
result = parseFloat(parseFloat(integer + '.' + decimalsValue.slice(0, rationalLimit + 1).join('')).toFixed(rationalLimit))
}
}
}
return result;
}