Petit probleme avec une fonction [Résolu]

Signaler
Messages postés
13
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
5 juillet 2007
-
Messages postés
9
Date d'inscription
vendredi 3 juin 2005
Statut
Membre
Dernière intervention
28 janvier 2006
-
Bonjour :)



Mon problème est tres simple :)



J'ai une fonction Arrondir dans un module:



Function Arrondi(nb)

nb = Fix((nb + 0.0001) * 1000) / 1000

End Function



Dans un autre module, j'ai :

toto=arrondi(toto)



Le probleme, c'est que ca me renvoie toujours Vide :(

Dans la fonction Arrondi, c'est bien calculé mais ca 'suis' pas apres.



Merci de m'indiquer mon erreur

6 réponses

Messages postés
8
Date d'inscription
mercredi 8 juin 2005
Statut
Membre
Dernière intervention
22 juillet 2005

Salut !
Dans un premier temps, comme une fonction ('Arrondi' ici) renvoit toujours une valeur, il vaut mieux que tu précises le type de cette valeur. Tu peux d'ailleurs préciser aussi le type de la variable en entrée ('nb' dans ton cas). Par exemple, tu peux écrire :

Function Arrondi(nb as Single) as Single

Ton problème vient du fait que tu attribues la valeur à renvoyer à ta variable en entrée ('nb'), alors qu'il faut l'attribuer à la fonction :

Function Arrondi(nb as Single) as Single
Arrondi = Fix((nb + 0.0001) * 1000) / 1000
End Function

Ainsi, ça devrait suivre après!! ;-)
En espérant avoir été aussi clair que possible.

++++++++++++++++++++++++++++
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 152 internautes nous ont dit merci ce mois-ci

Messages postés
386
Date d'inscription
samedi 4 octobre 2008
Statut
Membre
Dernière intervention
19 février 2018
2
Bonjour,

Public Function Arrondi(byval nb as Single) as long
Arrondi = Fix((nb + 0.0001) * 1000) / 1000
End Function

@++
[Gally Home Corp]
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 152 internautes nous ont dit merci ce mois-ci

Messages postés
13
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
5 juillet 2007

Salut :)



Merci beaucoup pour ta réponse rapide.

Malheuresement, mon probleme n'est tjs pas résolu..



Function Arrondi(nb as Double) as Double

Arrondi = Fix((nb + 0.0001) * 1000) / 1000

End Function



1er souci : si je met (nb as double) g un type d'argument byref
incompatible (ce qui est tres étrange puisque le 'toto' est en double
aussi



2eme souci : le resultat ne suis toujours pas ... au lieu de vide, j'ai 0
Messages postés
13
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
5 juillet 2007

Ohhh le boulet, désolé, la réponse était bonne dès la seconde réponse...

Je continuais a mettre nb= au lieu de arrondi=



Merci beaucoup sys_

Merci aussi a toi Gally, avec le byval, plus de message d'erreur



@ +
Messages postés
8
Date d'inscription
mercredi 8 juin 2005
Statut
Membre
Dernière intervention
22 juillet 2005

De rien ,
bonne continuation ! :-)
Messages postés
9
Date d'inscription
vendredi 3 juin 2005
Statut
Membre
Dernière intervention
28 janvier 2006

Salut tout le monde, j'espère ne pas me tromper dans le post, je voudrais savoir comment je puis retranscrire l'expression suivante: lpFindFileData.cAlternate = String$(14, 0) qui est en VB6 en VB.Net.

Je joue en effet avec les fonctions API FindFirstFile, FindNextFile et FindClose mais je bloque sur cette convertion de syntaxe, si quelqu'un pouvait m'aider ce serrait très sympas à lui

Merci à tout ceux qui participe à ces forums aussi bien pour le Visual Basic que le C++ ou les autres langages de programmation

La programmation, c bien, mais la programmation avec utilisation du multimédia (directX) c'est mieux, mais pas facile d'apprendre Sinon, le graphisme 3D c'est cool aussi avec 3D Studio Max et Bryce que j'apprend