[JAVASCRIPT] Como arredondar um número para coma? #11
-
Eu estava querendo saber como que eu posso arredondar um número, por exemplo 0,001 ou 0,0078 para 0,01. |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
Como você tá dando um valor com vírgula, ao invés de ponto, então primeiramente vai ter que converter este valor para o formato americano, que é a forma que o javascript entende valores decimais: const formatNumber = (numberValue = 1) => {
return +`${numberValue}`.replace(/\./g, '').replace(',', '.');
}
Feito isso, vamos botar a mão na massa aonde interessa! const normalizeToMin = (value, decimalPlaces = 2, minValue = 0.01) => {
const normalizedValue = Math.max(parseFloat(value) || 0, minValue);
const roundedValue = Math.round(normalizedValue * Math.pow(10, decimalPlaces)) / Math.pow(10, decimalPlaces);
const formattedValue = roundedValue.toFixed(decimalPlaces);
const [integerPart, decimalPart] = formattedValue.split('.');
const integerWithThousandSeparator = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, '.');
return `${integerWithThousandSeparator},${decimalPart}`;
}
Eu sei, eu sei... tem muita matemática envolvida. 🤭 Matematicamente, o cálculo feito pelo Onde x é o número e d as casas decimais. Para visualizar o resultado, clique aqui. |
Beta Was this translation helpful? Give feedback.
-
Nossa... agora entendo porque pedem matemática na faculdade... |
Beta Was this translation helpful? Give feedback.
Como você tá dando um valor com vírgula, ao invés de ponto, então primeiramente vai ter que converter este valor para o formato americano, que é a forma que o javascript entende valores decimais:
.replace(/\./g, '')
: Remove todos os pontos (.) da string. O\.
é uma expressão regular que encontra pontos, eg
é a flag para substituir todas as ocorrências.Feito isso, vamos botar a mão na massa aonde interessa!