2017-08-30 4 views
0

Je travaille avec Tapuscrit 2.4 et être coincé avec une simple opération modulo:Opération modulo tapée est incorrecte (ou imprécise)?

J'ai écrit un simple test de l'unité de l'opérateur modulo pour expliquer mon problème

fit('TypeScript should be able to do a simple mathematic modulo : ',() => { 
    expect(318.08 % 60).toBe(18.08); 
}); 

Et comme vous pouvez le deviner ... ce test échoue (attendu 18.079999999999984 pour être 18.08,).

Qu'est-ce que j'ai manqué?

Comme vous wan voir Google est mieux que ce jeu: D: https://www.google.fr/search?q=318.08+%25+60&oq=318.08+%25+60&gs_l=psy-ab.3...2056882.2060253.0.2061466.11.11.0.0.0.0.440.1441.2j2j1j1j1.7.0....0...1.1.64.psy-ab..4.5.1213...0j35i39k1j0i5i30k1.W8XFPAxxO44

Répondre

0

Ce n'est pas un problème dactylographiée, il est une question de la double précision. Ceci est la valeur qui est générée lors de l'utilisation modulo sur deux doubles (cochés en C# ainsi et j'ai la même valeur)

Vous pouvez arrondir le résultat à deux décimales

Math.round(100 *(318.08 % 60))/100