Как узнать количество знаков до точки и после?

Как узнать сколько знаков имеет число до точки и после точки?

Допустим есть такие числа:

var num = 14;
var num2 = 14.54;
var num3 = 514.0587;
var num4 = 0;
var num5 = 0.00000008;

Нужно вывести так:

Первое число это сколько знаков до точки, второе сколько знаков после точки

var num = [2, 0];
var num2 = [2, 2];
var num3 = [3, 4];
var num4 = [1, 0];
var num5 = [1, 8];

Ответы (1 шт):

Автор решения: MoloF

const num = 14;
const num2 = 14.54;
const num3 = 514.0587;
const num4 = 0;
const num5 = 0.00000008;

Number.prototype.numberOfCharactersBeforeAndAfter = function() {
	const str = this.toString();
	
	if (str.indexOf('e') === -1) {
		const result = str.split('.').map(i => i.length);
		return {
			before: result[0],
			after: result[1] || 0
		}
	}
	
	const exponent = parseInt(str.split('-')[1], 10);
	const result = this.toFixed(exponent).split('.').map(i => i.length);
	return {
		before: result[0],
		after: result[1] || 0
	}
}

console.log( num, num.numberOfCharactersBeforeAndAfter() );
console.log( num2, num2.numberOfCharactersBeforeAndAfter() );
console.log( num3, num3.numberOfCharactersBeforeAndAfter() );
console.log( num4, num4.numberOfCharactersBeforeAndAfter() );
console.log( num5, num5.numberOfCharactersBeforeAndAfter() );

→ Ссылка