Suite à mon post précédent, je me suis en fermé 48h et ai fini par coder un
script assez coton qui permet de limiter les décimales d'un nombre, quelle
que soit sa forme d'entrée dans la fonction (0.0001 = 1e-4 = 10e-5 =
0.1e-3).
Mais j'atteins les limites de mon script avec les calculs à très grandes
décimales, sur certains chiffres en particulier (je n'ai pas vraiment encore
identifié la constante qui fait que ces chiffres ne fonctionnent pas).
Bref, ceci pour vous demander :
Connaissez-vous un moyen pour pouvoir avoir un résultat fiable (sans
apparition d'artefact*) sur des calculs simples (+ - / *) avec de grands
chiffres du type :
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrick Mevzek
Connaissez-vous un moyen pour pouvoir avoir un résultat fiable (sans apparition d'artefact*) sur des calculs simples (+ - / *) avec de grands chiffres du type :
Quand on n'a ce genre de problèmes: 1) soit on ne travaille pas en virgule flottante (ie précision fixe, x chiffres avant et y chiffres après la virgule) 2) soit on ne travaille qu'avec des entiers (ex: prix de la vie de tous les jours * 100, comme ca pas de décimales pour le calcul) 3) soit on stocke les nombres sous forme de chaines de caractères.
A part 2), le reste ne me semble pas trivial en javascript.
Bon courage.
La question que je me pose : mais pourquoi diantre avez-vous besoin de tout cela en javascript ?
-- Patrick Mevzek . . . . . . Dot and Co (Paris, France) <http://www.dotandco.net/> <http://www.dotandco.com/> Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>
Connaissez-vous un moyen pour pouvoir avoir un résultat fiable (sans
apparition d'artefact*) sur des calculs simples (+ - / *) avec de grands
chiffres du type :
Quand on n'a ce genre de problèmes:
1) soit on ne travaille pas en virgule flottante
(ie précision fixe, x chiffres avant et y chiffres après la virgule)
2) soit on ne travaille qu'avec des entiers
(ex: prix de la vie de tous les jours * 100, comme ca pas de décimales
pour le calcul)
3) soit on stocke les nombres sous forme de chaines de caractères.
A part 2), le reste ne me semble pas trivial en javascript.
Bon courage.
La question que je me pose : mais pourquoi diantre avez-vous besoin de
tout cela en javascript ?
--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>
Connaissez-vous un moyen pour pouvoir avoir un résultat fiable (sans apparition d'artefact*) sur des calculs simples (+ - / *) avec de grands chiffres du type :
Quand on n'a ce genre de problèmes: 1) soit on ne travaille pas en virgule flottante (ie précision fixe, x chiffres avant et y chiffres après la virgule) 2) soit on ne travaille qu'avec des entiers (ex: prix de la vie de tous les jours * 100, comme ca pas de décimales pour le calcul) 3) soit on stocke les nombres sous forme de chaines de caractères.
A part 2), le reste ne me semble pas trivial en javascript.
Bon courage.
La question que je me pose : mais pourquoi diantre avez-vous besoin de tout cela en javascript ?
-- Patrick Mevzek . . . . . . Dot and Co (Paris, France) <http://www.dotandco.net/> <http://www.dotandco.com/> Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>
J. Smith
Merci :-)
J'ai besoin de cela en Javscript pour pouvoir donner un résultat en temps réel sans aller-retour serveur ni applet Java. Ceci dit, je suis parti pour opter pour la solution 3. Je suis en train de recoder à la main les algo de calcul en les basant sur des entrées de type String.
C'est fou ce que je m'amuse :-) Et je confirme, ça n'est pas trivial en Javascript.
Ceci dit, je suis toujours à l'écoute de toute aide qui me permettrait d'éviter de passer des heures de recodage from scratch.
@+
"Patrick Mevzek" a écrit dans le message de
Quand on n'a ce genre de problèmes: 1) soit on ne travaille pas en virgule flottante (ie précision fixe, x chiffres avant et y chiffres après la virgule) 2) soit on ne travaille qu'avec des entiers (ex: prix de la vie de tous les jours * 100, comme ca pas de décimales pour le calcul) 3) soit on stocke les nombres sous forme de chaines de caractères.
A part 2), le reste ne me semble pas trivial en javascript.
Bon courage.
La question que je me pose : mais pourquoi diantre avez-vous besoin de tout cela en javascript ?
Merci :-)
J'ai besoin de cela en Javscript pour pouvoir donner un résultat en temps
réel sans aller-retour serveur ni applet Java. Ceci dit, je suis parti pour
opter pour la solution 3. Je suis en train de recoder à la main les algo de
calcul en les basant sur des entrées de type String.
C'est fou ce que je m'amuse :-)
Et je confirme, ça n'est pas trivial en Javascript.
Ceci dit, je suis toujours à l'écoute de toute aide qui me permettrait
d'éviter de passer des heures de recodage from scratch.
@+
"Patrick Mevzek" <pm-N200504@nospam.dotandco.com> a écrit dans le message de
Quand on n'a ce genre de problèmes:
1) soit on ne travaille pas en virgule flottante
(ie précision fixe, x chiffres avant et y chiffres après la virgule)
2) soit on ne travaille qu'avec des entiers
(ex: prix de la vie de tous les jours * 100, comme ca pas de décimales
pour le calcul)
3) soit on stocke les nombres sous forme de chaines de caractères.
A part 2), le reste ne me semble pas trivial en javascript.
Bon courage.
La question que je me pose : mais pourquoi diantre avez-vous besoin de
tout cela en javascript ?
J'ai besoin de cela en Javscript pour pouvoir donner un résultat en temps réel sans aller-retour serveur ni applet Java. Ceci dit, je suis parti pour opter pour la solution 3. Je suis en train de recoder à la main les algo de calcul en les basant sur des entrées de type String.
C'est fou ce que je m'amuse :-) Et je confirme, ça n'est pas trivial en Javascript.
Ceci dit, je suis toujours à l'écoute de toute aide qui me permettrait d'éviter de passer des heures de recodage from scratch.
@+
"Patrick Mevzek" a écrit dans le message de
Quand on n'a ce genre de problèmes: 1) soit on ne travaille pas en virgule flottante (ie précision fixe, x chiffres avant et y chiffres après la virgule) 2) soit on ne travaille qu'avec des entiers (ex: prix de la vie de tous les jours * 100, comme ca pas de décimales pour le calcul) 3) soit on stocke les nombres sous forme de chaines de caractères.
A part 2), le reste ne me semble pas trivial en javascript.
Bon courage.
La question que je me pose : mais pourquoi diantre avez-vous besoin de tout cela en javascript ?
zwetan
J'ai besoin de cela en Javscript pour pouvoir donner un résultat en temps réel sans aller-retour serveur ni applet Java. Ceci dit, je suis parti pour
opter pour la solution 3. Je suis en train de recoder à la main les algo de
calcul en les basant sur des entrées de type String.
et ce sera tres lent...
C'est fou ce que je m'amuse :-) Et je confirme, ça n'est pas trivial en Javascript.
Ceci dit, je suis toujours à l'écoute de toute aide qui me permettrait d'éviter de passer des heures de recodage from scratch.
lire dans le volume 2 de "Donald E Knuth - The Art Of Computer Programming" le chapitre 4.3 Multiple precison arithmetic
ensuite au lieu d'utiliser des strings, utilise plutot une array de number et oui tu devras redefinir tous les operateurs: addition, soustraction etc...
dans ton array utilise des multiples de 10 (10..100, 1000 etc...) ca te permettra de calculer tres facilement la representation string du number
entraine toi avec une array en base 10 -> [0,0,0,...]
quand tu crees un grand nombre, tu le decomposes et tu remplis l'array ex avec 100 ton array donnera [1,0,0]
si tu additiones 900 a 100 [1,0,0] [9,0,0]
1+ 9 = 10 et > 9 donc tu decales a gauches etc..
c'est un peu compliqué mais avec cette technique tu peux arriver avec des calculs supportant une precision sur 64, 128 bits etc.. ensuite selon les calculs a faire et le degré de precision ca peut se reveler assez lent ou au contraire pas du tout
si tu restes sur les operateurs de base (+,-,/,*) dans une utilisation style excell..ce sera rapide
si tu comptes faire de la generation de nombre premier sur 256 bits...ce sera TRES TRES TRES TRES lent
bon courage zwetan
J'ai besoin de cela en Javscript pour pouvoir donner un résultat en temps
réel sans aller-retour serveur ni applet Java. Ceci dit, je suis parti
pour
opter pour la solution 3. Je suis en train de recoder à la main les algo
de
calcul en les basant sur des entrées de type String.
et ce sera tres lent...
C'est fou ce que je m'amuse :-)
Et je confirme, ça n'est pas trivial en Javascript.
Ceci dit, je suis toujours à l'écoute de toute aide qui me permettrait
d'éviter de passer des heures de recodage from scratch.
lire dans le volume 2 de "Donald E Knuth - The Art Of Computer Programming"
le chapitre 4.3 Multiple precison arithmetic
ensuite au lieu d'utiliser des strings, utilise plutot une array de number
et oui tu devras redefinir tous les operateurs: addition, soustraction
etc...
dans ton array utilise des multiples de 10 (10..100, 1000 etc...)
ca te permettra de calculer tres facilement la representation string du
number
entraine toi avec une array en base 10 -> [0,0,0,...]
quand tu crees un grand nombre, tu le decomposes
et tu remplis l'array
ex avec 100
ton array donnera [1,0,0]
si tu additiones 900 a 100
[1,0,0]
[9,0,0]
1+ 9 = 10 et > 9 donc tu decales a gauches
etc..
c'est un peu compliqué mais avec cette technique tu peux arriver
avec des calculs supportant une precision sur 64, 128 bits etc..
ensuite selon les calculs a faire et le degré de precision
ca peut se reveler assez lent ou au contraire pas du tout
si tu restes sur les operateurs de base (+,-,/,*)
dans une utilisation style excell..ce sera rapide
si tu comptes faire de la generation de nombre premier
sur 256 bits...ce sera TRES TRES TRES TRES lent
J'ai besoin de cela en Javscript pour pouvoir donner un résultat en temps réel sans aller-retour serveur ni applet Java. Ceci dit, je suis parti pour
opter pour la solution 3. Je suis en train de recoder à la main les algo de
calcul en les basant sur des entrées de type String.
et ce sera tres lent...
C'est fou ce que je m'amuse :-) Et je confirme, ça n'est pas trivial en Javascript.
Ceci dit, je suis toujours à l'écoute de toute aide qui me permettrait d'éviter de passer des heures de recodage from scratch.
lire dans le volume 2 de "Donald E Knuth - The Art Of Computer Programming" le chapitre 4.3 Multiple precison arithmetic
ensuite au lieu d'utiliser des strings, utilise plutot une array de number et oui tu devras redefinir tous les operateurs: addition, soustraction etc...
dans ton array utilise des multiples de 10 (10..100, 1000 etc...) ca te permettra de calculer tres facilement la representation string du number
entraine toi avec une array en base 10 -> [0,0,0,...]
quand tu crees un grand nombre, tu le decomposes et tu remplis l'array ex avec 100 ton array donnera [1,0,0]
si tu additiones 900 a 100 [1,0,0] [9,0,0]
1+ 9 = 10 et > 9 donc tu decales a gauches etc..
c'est un peu compliqué mais avec cette technique tu peux arriver avec des calculs supportant une precision sur 64, 128 bits etc.. ensuite selon les calculs a faire et le degré de precision ca peut se reveler assez lent ou au contraire pas du tout
si tu restes sur les operateurs de base (+,-,/,*) dans une utilisation style excell..ce sera rapide
si tu comptes faire de la generation de nombre premier sur 256 bits...ce sera TRES TRES TRES TRES lent