Fonction approximation
Résolu
novice53
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis confronté à un problème, je souhaite faire une fonction qui me permet d'approximer les valeurs de mon programme.
mais le problème est qu'il ne le fait pas sur toute les valeurs, il le fait sur certain mais pas sur d'autre et je comprend pas où est le problème
voici ma fonction
Function approximation_2(coord_I As String) As String
je suis confronté à un problème, je souhaite faire une fonction qui me permet d'approximer les valeurs de mon programme.
mais le problème est qu'il ne le fait pas sur toute les valeurs, il le fait sur certain mais pas sur d'autre et je comprend pas où est le problème
voici ma fonction
Function approximation_2(coord_I As String) As String
Dim approxi_2 As Doublequelqu'un pourrai venir à mon secour s'il vous plait
If Val(coord_I) < -0.0006 Then
approxi_2 = 0.0005
If Val(coord_I) > -0.0006 Then
approxi_2 = 0.0005
End If
End If
coord_I = Str(Val(coord_I) + approxi_2)
'coord_I = Mid(coord_I, 1, InStr(coord_I, ".") + 3)
If Right(coord_I, 2) = "0" Then
coord_I = Left(coord_I, Len(coord_I) - 2)
End If
approximation_2 = coord_I
End Function
A voir également:
- Fonction approximation
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide
4 réponses
Bonjour
Le début n'est pas très clair (RQ1) ni correct (RQ2)
RQ1. En bref ça donne
RQ2. il manque un end if avant le 2° si et il y en a un entrop après le 2° si
RQ3. Peux tu décrire ce que la fonction approximation_2 est censée réaliser
Cdlmnt
Le début n'est pas très clair (RQ1) ni correct (RQ2)
If Val(coord_I) < -0.0006 Then
approxi_2 = 0.0005
If Val(coord_I) > -0.0006 Then
approxi_2 = 0.0005
End If
End If
RQ1. En bref ça donne
si Val(ccoor_I) différent de -0.0006
alors approxi_2=0.0005
sinon approxi_2=0 puisque ce cas n'est pas traité
RQ2. il manque un end if avant le 2° si et il y en a un entrop après le 2° si
RQ3. Peux tu décrire ce que la fonction approximation_2 est censée réaliser
Cdlmnt
Pourquoi ne pas utiliser la fonction round, éventuellement combinée avec str et val dans le cas où les valeurs sont des chaines de caractères
n est le nombre de chiffres après la virgule maxi désiré
Dim s as Double, n as Byte, approx_1 as Double
approx_1 = Round(s, n)
Dim s as Double, n as Byte, approx_2 as String
approx_2 = Str(Round(s, n))
Dim s as String, n as Byte, approx_2 as String
s = Replace(s, ",", ".")
approx_3 = Str(Round(Val(s), n))
Cdlmnt
n est le nombre de chiffres après la virgule maxi désiré
Dim s as Double, n as Byte, approx_1 as Double
approx_1 = Round(s, n)
Dim s as Double, n as Byte, approx_2 as String
approx_2 = Str(Round(s, n))
Dim s as String, n as Byte, approx_2 as String
s = Replace(s, ",", ".")
approx_3 = Str(Round(Val(s), n))
Cdlmnt
De rien
Je suppose que tu as vu l'erreur ici approx_3 au lieu de approx_2 dans la troisième procédure
Si c'est fini, peux tu mettre le sujet à Résolu (en haut à droite de ton premier message)
Bonne fin de journée
Je suppose que tu as vu l'erreur ici approx_3 au lieu de approx_2 dans la troisième procédure
Dim s as String, n as Byte, approx_3 as String
s = Replace(s, ",", ".")
approx_3 = Str(Round(Val(s), n))
Si c'est fini, peux tu mettre le sujet à Résolu (en haut à droite de ton premier message)
Bonne fin de journée
avec cette fonction approximation je suis maintenant censé avoir 0.0
ne plus trainer trop de chiffre.
mais pour l'instant c'est pas le cas avec ma fonction actuelle j'obtiens 1.0
en somme je souhaite faire une fonction qui me permet d'avoir des nombres approximatif, ne plus trainer tout les nombres après la virgule.
merci pour votre aide