Qual é a melhor maneira de lidar com problemas de ponto flutuante com cálculos financeiros em JavaScript?

Respostas

11/21/2024
Garfinkel
Eu pessoalmente manuseio todos os cálculos com double (ou float) e imprimo o número financeiro em formato com toFixed ( 2 ). Se você precisar arredondar para os 5 centavos mais próximos, poderá mutliplicar por 0.05 arredondar e dividir por 0.05 (( Matemática . Rodada ( x * 0.05 ) / 0.05 ). toFixed ( 2 )).

Dessa forma, o programa conhece apenas o dobro e o usuário vê apenas decimais. O único que você deve ter em mente é que x == y para o usuário significa Math . abs ( x - y ) < 0.01 para o programa.

Esse hábito remonta ao antigo horário FORTRAN / COBOL, quando os tipos decimais estavam florescendo no campo em que o PHP date / time / timestamp se parece com uma pequena parte bem organizada da teoria dos tipos.

Tudo corre bem, cancelando mais ou menos aproximadamente menos, incluindo dividir um ano em 356.2422 dias com precisão astronômica e uma quantidade anual em 12 (o que fornece um número infinito de casas decimais na base 10, na base 2 e na base 16). Se você quiser agradar o seu contador e adicionar 12 vezes o seu salário anual arredondado dividido por 12 (primeiro / 12 depois), você poderá ver uma diferença da ordem de 0.06. Embora se você permitir que o seu salário mensal seja um dobro internamente e o arredonde apenas antes da impressão, o erro será da ordem de 15 dígitos melhor, ou seja, você precisará adicionar 1'000'000'000'000 ' 000 anos para ver a diferença.
Gertrude Baksh
Oi lá,É possível resolver seus problemas financeiros, siga as etapas abaixo e torne sua Vida mais vazia, menos estressante e mais livre e mais feliz:PASSO:Use uma folha de papel (papel ou no seu PC), mas o papel é o melhor. 1 a cada mês, então escreva o mês no TOP. Espalhe os papéis no chão. É fácil para você ver.Em cada artigo, faça uma TABELA e escreva: nome da empresa, data de pagamento, valor....

Deixe um comentário para