Python Javascript - Diferenças nos resultados (Gabaritos)

Python Javascript - Diferenças nos resultados (Gabaritos)

Tendo o mesmo cálculo em duas linguagens de programação era expectável ter o mesmo resultado.


Ao mudar de linguagem de programação, ou de tecnologia, para realizar o mesmo cálculo é expectável obter os mesmos resultados. É também uma forma de revisão de todo o processo.

No caso, um projecto "outsider" para cálculo ferroviário, que está a ser re-codificado para que tenha mais possibilidades de ampliação no futuro, embora seja um projecto para consumo interno.


Na parte esquerda da imagem abaixo, o cálculo em Javascript e na parte direita em Python. Não tem exactamente o mesmo conteúdo porque se está a apresentar menos saídas em JS.

Os valores semelhantes, por exemplo o -1.51 e o -1.511 chamam a atenção, deveriam ser o mesmo.


Uma das formas que tenho de rever os cálculos é comparar os ficheiros de Output, onde tenho todos os cálculos parciais relevantes.

Embora com separador de campos diferente, foi possível verificar que têm o mesmo resultado.


Então o problema estará no código.


 A função de arredondamento em Python é a seguinte:


E a função de arredondamento em JS é a seguinte:


O passo seguinte foi isolar estas funções num ficheiro e correr vários valores "típicos" e observar o resultado.

Em python:



Para JS não tendo o Node. js posso recorrer a alguma utilidade online, e faltava um arredondamento "para baixo", que coloquei nesta iteração. Os números grandes são importantes não vá haver algum problema de tipo de dados:




Em python o resultado difere para arredondamentos para baixo:




Está aqui a raíz do problema.


Passo seguinte, corrigir o arredondamento na versão do programa para Javascript.






Comentários

Mensagens populares deste blogue

Python - Automatização em ISPOL

Linha do Oeste - Breve visita

AMV – Aparelhos de Mudança de Via