Accueil > Forum > > > > pb de mul. avec d nbre single
pb de mul. avec d nbre single
mercredi 20 septembre 2006 à 20:01:00 |
pb de mul. avec d nbre single

flagyg
|
Bonsoir!! Voilà je codais tranquillement mon code quand tout à coup quelque chose de trés fâcheux s'est produit : T est une variable de type single qui vaut 0.00082 au moment ou je teste. J est 1 variable long mais c'est pas important. Voilà mon code Do If T <= 10 And T >= 1 Then Exit Do 'quand T est entre 1 et 10, on quitte If Nombre > 10 Then T = T / G J = J + 1 ElseIf Nombre < 10 Then J = J - 1 T = T * G End If DoEvents Loop La multiplication par 10 se fait bien, une, deux .. mais hop à la troisième multiplication voila que T est égal non pas à 0.82 mais à 0.8200001 !!!!! C'est quoi Ca ??? lol on dirait comme des registres pas remis à 0.. j ai essayé de mettre le nombre "10" en constant single histoire de tout initialiser mais non, rien à faire.. savez-vous d'ou ca provient? PS: au cas ou, je n ai pas de service pack .. Merci infiniment de votre réponse!! elle me sera trés précieuse parce que là vraiment il y a quelque chose qui m'échappe!!!
|
|
mercredi 20 septembre 2006 à 20:54:25 |
Re : pb de mul. avec d nbre single

mortalino
|
Salut, ta variable ne doit pas être en Single, mais de type double. De plus, je t'ai fait une simplification de ton code : Private Sub Form_Load() Dim T As Double ' en Double, pas en Single Dim Nombre As Long Dim J As Long Dim G As Long
T = 0.00082 Nombre = 5 G = 10
Do Select Case T Case 1 To 10: Exit Do Case Else: If Nombre > 10 Then T = T / G: J = J + 1 _ Else J = J - 1: T = T * G End Select 'DoEvents Loop End Sub
@++
--Mortalino-- Le mystérieux chevalier, "Provençal, le Gaulois" /DIV>
|
|
mercredi 20 septembre 2006 à 21:01:19 |
Re : pb de mul. avec d nbre single

Dolphin Boy
|
Salut, je crois que ça vient de l'incertitude dans la précision de ce genre de type de donnée en VB6. Avec single, elle se situe entre -1,401298E-45 et 1,401298E-45. Avec Double, elle se situe entre -4,94065645841247E-324 et 4,94065645841247E-324 Dans ton cas, choisis le type Double pour ta variable T et ça devrait le faire (précision imparfaite aussi mais suffisante pour tes calculs je pense)
|
|
mercredi 20 septembre 2006 à 21:02:29 |
Re : pb de mul. avec d nbre single

casy
|
Mortalino, ça apporte quoi de passer la variable en Double ????
---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
|
|
mercredi 20 septembre 2006 à 21:16:51 |
Re : pb de mul. avec d nbre single

mortalino
|
Casy : d'avoir le résultat voulu !!  J'ai testé ça façon, et effectivement le résultat est comme il a dit, avec la variable en Double, le résultat est correct. J'ai regardé, des erreurs se produisent si le nombre, de type Single, est compris entre -1,4 et 1,4. @++
--Mortalino-- Le mystérieux chevalier, "Provençal, le Gaulois" /DIV>
|
|
mercredi 20 septembre 2006 à 21:20:19 |
Re : pb de mul. avec d nbre single

mortalino
|
Beh té, tant que je suis dessus, autant en faire profiter notre ami flagyg : | Type de données | Taille d'enregistrement | Plage | | Byte | 1 octet | 0 à 255 | | Boolean | 2 octets | True ou False | | Integer | 2 octets | -32 768 à 32 767 | Long (entier long) | 4 octets | -2 147 483 648 à 2 147 483 647 | Single (à virgule flottante en simple précision) | 4 octets | -3,402823E38 à -1,401298E-45 pour les valeurs négatives ; 1,401298E-45 à 3,402823E38 pour les valeurs positives | Double (à virgule flottante en double précision) | 8 octets | -1,79769313486231E308 à -4,94065645841247E-324 pour les valeurs négatives ; 4,94065645841247E-324 à 1,79769313486232E308 pour les valeurs positives | Currency (entier à décalage) | 8 octets | -922 337 203 685 477,5808 à 922 337 203 685 477,5807 | @++
--Mortalino-- Le mystérieux chevalier, "Provençal, le Gaulois" /DIV>
|
|
mercredi 20 septembre 2006 à 21:45:17 |
Re : pb de mul. avec d nbre single

flagyg
|
Ah oui!!!! Merci beaucoup pour ces réponses!!!! comme quoi on en apprends tout les jours..j' avais jamais remarqué que faire une multiplication par 10 entrainait une imprécision..j'avais toujours obtenu un nombre exact. Bon je n'ai pas l'habitude d'utiliser des nombres à virgules.. ben merci beaucoup..Mais plutôt que d'utiliser un double, je vais plutôt remplacer le "égal" par une soustraction et une comparaison avec + ou- 0 ..Merci beaucoup en tout cas!!!Vive ce site extra et ses utilisateurs qui le sont tout autant!
|
|
jeudi 21 septembre 2006 à 10:47:34 |
Re : pb de mul. avec d nbre single

Renfield
|
ok avec le typage en Double... pour la simplification et sécurisation du code, mieux vaut :
If G <> 0 And Nombre <> 10 Then Do Until T <= 10 And T >= 1 If Nombre > 10 Then T = T / G Else T = T * G End If Loop End If
Renfield Admin CodeS-SourceS- MVP Visual Basic
|
|
Cette discussion est classée dans : pb, nombre, single, nbre, mul
Répondre à ce message
Sujets en rapport avec ce message
MATH Nbre aléatoire avec cos???? [ par wico2002 ]
Bonjour Je ne me souvient plus comment de servir de math.cos et je dois générer un nombre aléatoire entre 0 et 90, de valeur positive. Voila ce qu
pb avec inet_ntoad de winsock [ par xerque ]
Bonjour,J'ai un pb avec inet_ntoad(nombre as long ). Cette fonction permet de changer un long en adresse IP lisible. Cependant si mon nombre dépasse l
Pb Excel... somme si nombre en gras [ par BosB ]
J'ai un tableau avec des montant et je veux additionner que ceux qui sont en gras!!!!Est-ce possible sans faire de macro?????Merci je suis bloquer
Pb pour compter le nombre d'enregistrements [ par damiendu56 ]
Encore une tite question lol ...... Je veux compter le nombre denregistrements de mon RecordSet, mais seulement ca marche pa quan jutilise : rst.Recor
base de donnée et vb [ par jakoum ]
sos : j'ai un pb : j'ai developpé une application de gestion de personnel mais j'ai rencontré un tt petit pb , celui du nombre de chiffre apres la vi
Nombre dynamique de boutons - Pb de clic [ par capuccino_fr ]
J'ai un fichier ini qui contient des references a des applicaitons (nom, chemin et icone). Je genere mon formulaire avec le nombre necessaire de bouto
pb avec heures [ par dodo1309 ]
BonjourVoila j'ai un petit problème avec excelje dois comptabilisé le nombre d'heure fais par un employé sur un mois. Donc j'ai une colone qui contien
pb de variable [ par flashover40 ]
slt , voila mon souci, je souhaite créer une variable qui incrémentera la ligne du meme nombre . Je c pas comment faire pour que le nombre de la varia
Pb converson heure du type hh:mm:ss en nombre [ par bimone78 ]
Bonjour, j'ai un petit soucis pour convertir une heure par exemple 146:28:32 en nombre car quand je copie cette valeur ds excel. Il y a marqué 02:28:3
compter un nombre d'enregistrements dans une table [ par Morgoth666 ]
Voici mon code, je cherche a inscrire dans une textbox lorsue je click sur un bouton le nombre de personnes ayant moins de 20 ans. Dans ma table j'ai
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|