OVH Cloud OVH Cloud

Nombre en mode debug

2 réponses
Avatar
Jean-Michel
Bonjour,

quand je me met en mode debug, j'ai parfois quelque surprise, comme celle ci
!

je fais cette opération :

reste = reste - lame - tablo(Ptablo).longueur

quand je pointe la souris sur reste, ca me dit 1300.6, quand je pointe sur
lame, ca me sort : 3.7, et quand je pointe sur longueur, ca me sort 1276
Et apres l'opération, quand je pointe sur reste, ca me sort 20.9000000000003
!!!
Je sais qu'a l'affichage c'est pas trop grave, on fait Round, mais pour mes
calcule, ca peut me fausser pas mal !

Merci pour vos reponse !

2 réponses

Avatar
jmn
Malheureusement VB n'est pas Fortran (n'est plus ?!) et les versions
Microsoft de Basic n'ont pas prévu de type décimal fixe.
Si vous êtes capable d'établir la précision requise par vos calculs (nombre
de chiffres significatifs après la virgule) vous pouvez traiter toutes vos
opérations avec des variables de type INT en multipliant toutes vos données
initiale par lapuissance de 10 correspondante, avant de diviser le résultat
final par la même valeur.

La plage des int est -2 147 483 648 à 2 147 483 647, donc avec un précision
a 10-2, vous pouvez traiter des données entre -2 147 483,99 et 2 147 483,99

Si vous avez besoin de décrire des valeurs plus grandes et/ou des parties
décimales plus précises vous pouvez également écrire les fonctions
arithmétiques opérant sur un nombre décrit en deux morceau formé de 2 int :
un pour la partie entière, un autre pour la partie décimale (pensez à cadrer
la partie décimale à gauche en fixant une précision max (10-6 par exemple),
sinon vous ne saurez jamais comment remonter les unités vers la partie
entière)
Avatar
Patrice Henrio
En écrivant ce que cela donne en puissance de 2 vous comprendrez mieux le
résultat de l'opération, d'autant que le type de chaque nombre va jouer un
rôle dans cet exercice.
L'arithmétique des ordinateurs est une arithmétique de segment ce qui est
différent de l'arithmétique des nombres habituelle.
"Jean-Michel" a écrit dans le
message de news:
Bonjour,

quand je me met en mode debug, j'ai parfois quelque surprise, comme celle


ci
!

je fais cette opération :

reste = reste - lame - tablo(Ptablo).longueur

quand je pointe la souris sur reste, ca me dit 1300.6, quand je pointe sur
lame, ca me sort : 3.7, et quand je pointe sur longueur, ca me sort 1276
Et apres l'opération, quand je pointe sur reste, ca me sort


20.9000000000003
!!!
Je sais qu'a l'affichage c'est pas trop grave, on fait Round, mais pour


mes
calcule, ca peut me fausser pas mal !

Merci pour vos reponse !