Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, estou com um problema que muitos provavelmente tiveram ou terão futuramente, que é calculos de casas decimais no javascript.
No caso seria somente controlar a quantidade de casas decimais que o valor tem entre os elementos calculados, porém como eu posso por exemplo calcular a quantidade de casas decimais de um valor? tentei .length porémsó funciona com strings, e no caso só preciso calcular a quantidade de casas decimais e travar no maior valor possivel.
Já tentei todas as soluções possiveis mas nenhuma resolveu esse cálculo abaixo. No caso só me restou essa idéia que tive porém queria saber se encontro o melhor método para o mesmo.
var x = 0.123123;
var y = 0.1;
var floatlimit = ???; //variavel que conterá o n. de casas decimais do valor com maior extensão decimal
var z = x + y
document.getElementById("demo").innerHTML = z.toFixed(floatlimit);>
2 horas atrás, Felipe Guedes Coutinho disse:
Rafacharkman
...
Vlw, Felipe Guedes Coutinho, eu pensei nisso também enquanto estava tentando resolver aqui e conclui nesse código que vou deixar aqui em baixo. Único problema que tive foi com o .reduce() e .reduceRight() aonde um 1º ciclo do Loop só lê o
**return cache;** e o outro faz a mesma coisa no ultimo ciclo.
Para quem tiver duvidas, fica aqui o código:
var x = [null, 0.1, 0.123123];
var floatlimit = x.reduce( (cache, value) => {
value = String(value).split('.');
value[1] = Number(value[1].length);
if(cache < value[1]) cache = value[1];
return cache;
});
document.write(
x.reduce( (cache,value) => cache+value ).toFixed(floatlimit)
);
Rafacharkman
Se o que você quer é saber o TAMANHO do maior decimal você pode fazer o seguinte: