Javascript et la précision des flottants - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Javascript et la précision des flottants (/showthread.php?tid=5086) Pages :
1
2
|
Javascript et la précision des flottants - php_addict - 16-08-2010 bosoir j'ai un truc très étrange en JS: Code PHP :
rien de plus simple comme code me direz vous...et ben voici ce que j'obtiens: :cogne: (testé avec FF et chrome...) c'est moi qui hallucine ou Javascript ??? RE: mysètre JS , c'est moi qui hallucine ou Javascript? - Globe - 16-08-2010 http://stackoverflow.com/questions/1036662/weird-javascript-behaviour-floating-point-addition-giving-the-wrong-answer RE: mysètre JS , c'est moi qui hallucine ou Javascript? - Sephi-Chan - 16-08-2010 Stack Overflow - Is JavaScript’s Math broken? En gros, les nombres trop petits ne peuvent pas être représentés avec précision, d'où ces valeurs étranges pour ces petits nombres. Sephi-Chan, sympa le screenshot d'alert() ! Back to 1995 ! RE: mysètre JS , c'est moi qui hallucine ou Javascript? - php_addict - 16-08-2010 merci pour vos reponses donc c'est normal? c'est dingue quand même...savoir que mon ordi ne sait pas calculer 1 + 0.1 c'est quand même drôle mais quelle est alors la solution pour que 1 + 0.1 fasse 1.1 ? je peut pas arrondir...couper après la virgule sans arrondir? PS: c'est pour incrementer de 0.1 un champs input d'un formulaire avec un joli onclick, et j'ai pas très envie que cela me donne des trucs du genre 1.0000000012 bonne soiree RE: mysètre JS , c'est moi qui hallucine ou Javascript? - Sephi-Chan - 16-08-2010 Ce n'est pas qu'il ne sait pas calculer, c'est une histoire de stockage sur 2 bits. Pour réglier le problème tu peux utiliser une échelle plus grande (n*10, par exemple) ou utiliser la méthode toPrecision de l'objet Number. Sephi-Chan RE: mysètre JS , c'est moi qui hallucine ou Javascript? - php_addict - 16-08-2010 merci, je vais utiliser toFixed() je penses bonne fin de soirée RE: mysètre JS , c'est moi qui hallucine ou Javascript? - Ter Rowan - 16-08-2010 (16-08-2010, 10:35 PM)Sephi-Chan a écrit : Ce n'est pas qu'il ne sait pas calculer, c'est une histoire de stockage sur 2 bits. ben justement si il faut trouver une parade c'est qu'il ne sait pas calculer correctement ce nombre c'est du même niveau qu'un hack pour ie ou ce genre de chose voire même pire, on est quand même sur une opération de base : sommer deux réels qui n'ont "qu'une" décimale et ça , ça ne se fait pas naturellement malheureux qu'on ne corrige pas la manière de stoker/calculer/je sais pas quoi pour y arriver "naturellement" RE: Javascript et la précision des flottants - niahoo - 17-08-2010 si tu veux uniquement faire des incrémentations, travaille sur des entiers ! RE: Javascript et la précision des flottants - Sephi-Chan - 17-08-2010 (16-08-2010, 11:51 PM)Ter Rowan a écrit :(16-08-2010, 10:35 PM)Sephi-Chan a écrit : Ce n'est pas qu'il ne sait pas calculer, c'est une histoire de stockage sur 2 bits. Propose un ticket aux développeurs de Javascript. Sauf que… Ceci est un comportement conforme au standard standard IEEE 754, qui définit ce type d'opération sur les flottants. D'accord, ce n'est pas le comportement qu'on attend, ce n'est pas naturel pour nous, mais — sans ironie — c'est une feature, pas un bug. Tout ça est expliqué dans l'article What Every Computer Scientist Should Know About Floating-Point Arithmetic. Après, moi aussi je préférerais que ça respecte une approche plus naturelle, mais je n'avais qu'à naître plus tôt et participer à l'élaboration de ces standards… En attendant j'en prends connaissance et je fais avec, parce que c'est pas près de changer. Et, coup de chance, on ne nous laisse pas tout seul et on dispose d'une panoplie de méthodes utiles dans l'objet Number. Sephi-Chan, Ah les mecs, sortis de PHP vous êtes paumés ! iffle: RE: Javascript et la précision des flottants - srm - 17-08-2010 En effet en Scala on a le même problème que l'on peut résoudre en utilisant des BigDecimal : Code PHP :
|