|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
![]() ![]() Daniel HagnoulÉtudiant perpétuel Inscription : février 2009 Messages : 3 221 ![]() |
Bonjour
Pour une page web, projet d'étudiant non accessible sur l'internet, incluant des calculs astronomiques réalisés à la demande de l'utilisateur nous aurions eu besoin de 15 décimales exactes pendant tous les calculs. Je ne parle pas de la présentation des résultats, mais bien de la précision des calculs. Pour la présentation des résultats, j'ai simplement utilisé nombre.toFixed(13) ce qui donne un nombre non ridicule (style 0.06 + 0.01 = 6.9999..) dans la très grande majorité des cas. La plupart des langages informatiques disposent d'un module mathématique, j'ai conseillé à l'étudiant de réaliser une seconde version en utilisant Python, mais je n'ai rien trouvé pour le JS sur Internet. Comme on trouve tout sur le web, j'ai peut-être mal cherché ?
__________________
FAQ jQuery Mon cahier d’exercices sur jQuery & CoSi un message vous a aidé ou vous semble pertinent, votez pour lui ! ![]() |
|
00
|
|
|
#2 |
|
Membre Expert
![]() Tlouye Ci Inscription : mars 2004 Messages : 1 450 ![]() |
Y'a un début de réponse sur ce post
Sinon y'a probablement quelque chose de plus abouti mais si c'est le cas je ne le connais pas. |
|
|
00
|
|
|
#3 |
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 007 ![]() |
y'a bien une ou deux libs qui trainent, mais je ne sais pas ce qu'elles valent.
En voici la plus connue http://jsfromhell.com/classes/bignumber
__________________
Ma page Developpez Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts) Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir... Votre post est résolu ? Alors n'oubliez pas le Tag ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
|
|
00
|
|
|
#4 |
![]() ![]() Daniel HagnoulÉtudiant perpétuel Inscription : février 2009 Messages : 3 221 ![]() |
Bonsoir
Je suis vraiment passé à côté et n'a pas été mon ami. Je devrais peut-être utiliser plus souvent mon copain "bing". JSFromHell.com, en dehors de BigNumber, le site semble contenir d'autres perles. J'ai également, en cherchant cette fois avec "js big number", trouvé RSA and ECC in JavaScript Il me reste beaucoup de travail pour lire, comprendre, tester et comparer avant d'appliquer le meilleur. @SpaceFrog
__________________
FAQ jQuery Mon cahier d’exercices sur jQuery & CoSi un message vous a aidé ou vous semble pertinent, votez pour lui ! ![]() |
|
00
|
|
|
#5 |
![]() ![]() Daniel HagnoulÉtudiant perpétuel Inscription : février 2009 Messages : 3 221 ![]() |
Bonsoir
Malheureusement, BigNumber échoue pour la division (divide) et pour les fonctions qui utilise la division : pow, mod. 60/0.06 = 1000.0114 !!! 60/0.03 = 200.0327 !!! Pour l'instant, seul BigDecimal passe mes tests !
__________________
FAQ jQuery Mon cahier d’exercices sur jQuery & CoSi un message vous a aidé ou vous semble pertinent, votez pour lui ! ![]() |
|
00
|
|
|
#6 | ||||||||||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 854 ![]() |
parfait! tu vas avoir l'honneur d'être le tout premier testeur de ma lib :
Code :
exemple d'utilisation : Code :
- inconvénient : elle ne gère pas encore les "bigNumber" (actuellement limité à 16 chiffres devant ou à 16 chiffres derrière la virgule). (ce sera pour la prochaine version.. pas grand chose à rajouter). - inconvénient : elle comporte sans doute énormément d'erreurs ! c'est pour ça que j'ai besoin de toi pour la tester. - avantage : elle corrige les erreurs de opérations flottantes ! et ceci avec une rapidité non négligeable puisque ne comporte aucune boucle (sauf pour la méthode "compare" ... déjà prévue pour les bigNumber et à l'initialisation de lib pour générer un grand string plein de "0"). - avantage : le code fait moins de 4ko contre 200ko pour BigDecimal. edit: tiens pour une fois mon code est même (presque) lisible ! nb: ce code ne fait rien d'autre que transformer les float en int via des string pour appliquer les opérations sur des entiers et ensuite replacer la virgule(et le signe) au bon endroit. exemple : Code :
nb: n'hésitez pas à rafraîchir la page pour voir différentes valeurs par défauts prouver l'efficacité du brol. edit: j'ai rajouté une iframe avec une recherche google de l'équation pour comparer avec une résultat (je crois) fiable ! Tiens dans ma lib j'ai des "uncaught illegal access" sur des RegExp.rightContext ... avec des Chaine.match(/[\*\/\+\-]/g) sur mes opérations ... des opérations qui ont toujours qqe chose à droite des opérateurs (quand je fais des alert(Chaine) ). donc je ne comprend pas pourquoi ça plante. -> HELP PLEASE. edit: apparement ce problème n'apparait que sous chrome ... IE et Firefox marchent nickel "chrome" ! ligne de code incriminée : Code :
Code :
|
||||||||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com