osfou
Messages postés10Date d'inscriptionmercredi 12 juillet 2006StatutMembreDernière intervention20 septembre 2006
-
4 août 2006 à 14:01
erefdatacomputing
Messages postés165Date d'inscriptionmardi 7 mars 2006StatutMembreDernière intervention24 avril 2018
-
4 août 2006 à 19:44
comment isoler la partie decimale d'un nombre afin de ne modifier que cette partie sans toucher a la valeur entiere
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 4 août 2006 à 14:11
Pour utiliser que la partie décimale dans un calcul en code donc ?
La première qui me vient à l'esprit :
Tu récupères justement la partie entière de ton nombre dans une variable, avec la fonction Int, partie entière que tu soustraits à ton nombre.
Il te reste donc la partie décimale.
Tu appliques ton traitement.
Puis tu ajoutes à nouveau ton entier quand tu as fini ton traitement sur la partie décimale.
Voili, voilou.
En fonction de ce que tu veux faire sur la partie décimale, tu as peut être mieux à faire, mais il faudrait en dire un peu plus dans ce cas ^^.
Dolphin Boy
Messages postés630Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention17 février 2007 4 août 2006 à 14:27
Salut
Renfield> le résultat de :
a = 25.32
decimalPart = a - fix(a)
donne : 0.3199997
Je vote donc pour la solution de <jrivet>, plus longue mais apparemment plus fiable.
erefdatacomputing
Messages postés165Date d'inscriptionmardi 7 mars 2006StatutMembreDernière intervention24 avril 2018 4 août 2006 à 19:44
Toutes ces solutions sont correctes mais imprécises arrivée à un certain moment.
Généralement quand on arrive à 6, 7 ou 8 chiffres après la virgule, on a un résultat qui devient approximatif.
Essaye cela (dans un CommandButton):
Private Sub Command1_Click()
Dim valdecimale As String
Dim result As String
Dim a As Double
Dim i As Double
valdecimale = "123.456789012346789012345678901234567890123456789"
'soit 45 chiffres après la virgule .... et je me suis arrêté là !!!!
a = Len(valdecimale)
'boucle de recherche du séparateur décimal
For i = 1 To a
If Mid(valdecimale, i, 1) = "." Then GoTo separateur
Next i
MsgBox "Pas de chiffres après la virgule !!"
'si la boucle est finie sans aller à 'separateur' on à donc içi une valeur entière'
GoTo attente
separateur:
'affichage de la partie qui se trouve après le séparateur décimal
result = Mid(valdecimale, i + 1, a - i)
MsgBox result
attente:
End Sub
à plus !!!!!
Je comprends vite mais il faut m'expliquer longtemps et tout en détails !!!