Accueil > Forum > > > > comment récupérer la valeur des décimales d'une variable de type long ?
comment récupérer la valeur des décimales d'une variable de type long ?
jeudi 7 juillet 2005 à 13:38:54 |
comment récupérer la valeur des décimales d'une variable de type long ?

robmor
|
bonjour, comment pourrais-je récupérer la valeur des décimales d'une variable de type long ? (pour une valeur de 32,56 par exemple, je voudrais récupérer 56 uniquement...) merci !
|
|
jeudi 7 juillet 2005 à 13:58:57 |
Re : comment récupérer la valeur des décimales d'une variable de type long ?

guilleto
|
Bonjour,
Voici un bout de code te permettant de faire ce dont tu as besoin et cela quelque soit le séparateur décimal !
Option Explicit ' Déclaration des librairies nécessaires ! Const LOCALE_SDECIMAL As Long = &HE Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long Private Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long ' Déclaration des fonctions de récupération du séparateur décimal ! Public Function GetUserLocaleInfo(ByVal dwLocaleID As Long, ByVal dwLCType As Long) As String Dim sReturn As String Dim R As Long R = GetLocaleInfo(dwLocaleID, dwLCType, sReturn, Len(sReturn)) If R Then sReturn = Space$(R) R = GetLocaleInfo(dwLocaleID, dwLCType, sReturn, Len(sReturn)) If R Then GetUserLocaleInfo = Left$(sReturn, R - 1) End If End If End Function
' Il faut mettre un CommandButton sur la feuille Private Sub Command1_Click() Command1.Caption = PartieDecimale(33.56) End Sub
' Petite fonction qui peut être appelée de partout ! Public Function PartieDecimale(Valeur) Dim LCID As Long Dim SymboleDecimal As String LCID = GetSystemDefaultLCID() SymboleDecimal = GetUserLocaleInfo(LCID, LOCALE_SDECIMAL) PartieDecimale = Mid$(Valeur, InStr(1, Valeur, SymboleDecimal, vbTextCompare) + 1) End Function
Et Voilà !
Y a certainement plus simple mais cela permet aussi de manipuler les librairies pour la gestion des paramètres régionaux !
Bonne Prog
Olivier
|
|
jeudi 7 juillet 2005 à 15:55:02 |
Re : comment récupérer la valeur des décimales d'une variable de type long ?

robmor
|
merci bien de ton aide; il va falloir que je voie ça de plus près, ça me paraît encore un peu obscur...!
|
|
jeudi 7 juillet 2005 à 17:18:28 |
Re : comment récupérer la valeur des décimales d'une variable de type long ?

Totoroyamada
|
S'il n'y a que 2 décimales, tu multiplies ton nombre par 100, tu le
convertis en string et tu récupères les deux derniers caractères... et
s'il peut y avoir plus de décimales tu multiplies par 1000, 10000 etc
et tu récupères les 3, 4 etc... derniers caractères...
Comme ça même si y a pas de décimales, tu récupères 0, et tu te fiches des paramètres régionaux...
C'est de la bidouille mais pas besoin d'API ou autre (mais c'est sûr, c'est moins intéressant que la soluce de guilletto)
|
|
vendredi 8 juillet 2005 à 09:06:22 |
Re : comment récupérer la valeur des décimales d'une variable de type long ?

guilleto
|
Salut, En effet c'est de la bidouille ! C'est la solution que j'utilisais avant ! Seul inconvénient c'est que tu ne sais jamais combien de chiffres il y a après la virgule ! Donc ...... vive les API  ! @+ Bonne prog Olivier
|
|
vendredi 8 juillet 2005 à 10:38:06 |
Re : comment récupérer la valeur des décimales d'une variable de type long ?

Totoroyamada
|
C'est effectivement le problème... Mais par exemple, dans le cas de
l'appli commerciale qu'on développe, on ne va jamais plus loin que 3
chiffres, donc en une ligne on a ça:
Dim MesDecimales As Integer = CType(((MonNombre * 1000).ToString.Substring((MonNombre * 1000).ToString.Length - 3)), Integer)
Mais comme tu dis, vive les API, il est plus intéressant de les manipuler... mais un peu de bidouille n'a jamais tué personne...
|
|
vendredi 8 juillet 2005 à 10:54:11 |
Re : comment récupérer la valeur des décimales d'une variable de type long ?

guilleto
|
Salut Totoroyamada,
Est-ce que ce genre de codage n'a pas pour effet secondaire de TRONQUER la valeur ??
Exemple : 3.157664879 => 3.157 au lieu de 3.158 (étant donné que le chiffre suivant 6 est > à 5) !
Remarque identique pour des nombres négatifs !
Cordialement,
Olivier
|
|
vendredi 8 juillet 2005 à 11:35:30 |
Re : comment récupérer la valeur des décimales d'une variable de type long ?

Totoroyamada
|
Le but du truc n'est pas de récupérer les X premiers chiffres après la
virgule, mais tous les chiffres... donc pas d'histoire d'arrondi. Dans
le cas présent, pour utiliser ma méthode il faudrait multiplier ton
nombre par 1000000000... et on voit bien là les limites de la
bidouille... ;-)
|
|
vendredi 8 juillet 2005 à 14:01:16 |
Re : comment récupérer la valeur des décimales d'une variable de type long ?

Totoroyamada
|
(Par contre désolé je viens à peine de m'apercevoir que c'est du VBA alors que j'ai filé du .Net...  )
|
|
Cette discussion est classée dans : récupérer, variable, type, valeur, décimales
Répondre à ce message
Sujets en rapport avec ce message
affecter valeur à variable de type date [ par darwin42 ]
salut,je voudrais savoir comment on fait pour affecter une valeur à une variable de type date. Seulement, le chiffre du jour se trouve dans un label,
Peut-on vérifier le type d'une variable?!? [ par CDAlstom ]
Bonjour!Je pense que ma question est assez "banale"...A un endroit de mon code je calcule la moyenne des valeurs d'une colonne (entre la ligne 11 et l
Récupérer la valeur d'une variable à partir d'une chaîne : GetVarValue ou autre ? [ par robin42p ]
Bonjour,Je souhaite récupérer la valeur d'une variable, dans le même style que la fonction Val()Le but est d'éviter un traitement long, variables par
Récupérer une valeur plusieurs fois pour la même variable (copier coller conditionnelle) [ par Irden ]
Salut,J'ai une variable "Température" qui est présente plusieurs fois dans mon fichier Excel et je veux récupérer sa valeur à chaque fois, qui est tou
Récupérer la valeur d'une variable après fermeture du programme [ par fredx76 ]
Bonjour, Je suis actuellement en train de développé une petite application sous Visual Basic Express 2010 et je rencontre un problème. J'ai besoin de
Variables d'environnement [ par Philippe734 ]
Bonjour, Je sais comment récupérer la valeur d'une variable environnement. Je connais même plusieurs méthodes. Chacune permettent de récupérer la va
récupérer la valeur d'une combobox et déclaration de variable. [ par micku2b ]
bonjour, Voila mon problème je souhaiterais pouvoir récupérer la valeur de ma ComboBox1 (que je charge à l'ouverture du classeur) à n'importe quel mo
ODBC SAGE (Base approprie ) [ par ataeallah ]
Bonjour tous, J'utilise le driver ODBC pour pouvoir communiquer avec une base sage 100 ver 16.5. Pour les updates je n'ai pas de problème, par contre
Nommer une variable à partir de la valeur d'une autre variable (évaluer, concaténer) [ par Jayme65 ]
Bonjour, Je suis débutant (donc, merci d'avance pour votre compréhension ;) Voila, j'ai jusqu'à présent programmé en ActionScript, et je veux porter m
variables décimales [ par Mathioustone ]
Bonjour à tous, Encore un mystère de microsoft office à résoudre [^^mad5]... Je m'explique: j'utilise un classeur dans lequel je rentre dans les colo
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
|