Comment declarer une variable decimale
-
- Messages : 1501
- Inscription : dim. 18/avr./2004 15:04
- Localisation : sud de la france
Comment declarer une variable decimale
Bonjour
juste une petite question , je suis entrain de refaire des exemples Vb en PB histoire de faire la main en Pb , et j'arrive a trouver comment faire en Pb ceci
: Dim Tempf as decimal
j'"ai compris en Vb que l'on declare la variable Tempf comme une variable decimale , mais en pb comment la declarer au debut .
merci beaucoup de votre aide
juste une petite question , je suis entrain de refaire des exemples Vb en PB histoire de faire la main en Pb , et j'arrive a trouver comment faire en Pb ceci
: Dim Tempf as decimal
j'"ai compris en Vb que l'on declare la variable Tempf comme une variable decimale , mais en pb comment la declarer au debut .
merci beaucoup de votre aide
Dernière modification par jbernard13 le sam. 31/janv./2009 15:01, modifié 2 fois.
-
- Messages : 1554
- Inscription : lun. 24/juil./2006 6:44
- Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E
Re: Comment declarer une variable decimale en debut de code
heuuu, unjbernard13 a écrit : : Dim Tempf as decimal
Code : Tout sélectionner
Global Tempf.l
En C/C++ par exemple , on aime bien s'appuyer sur la notation hongroise pour toujours
garder en visu le type de déclaration de la donnée, on écrirait donc dans ce cas(mais la je chipote):
Code : Tout sélectionner
Global lTempf.l
Dernière modification par tmyke le sam. 31/janv./2009 9:19, modifié 1 fois.
Force et sagesse...
-
- Messages : 1501
- Inscription : dim. 18/avr./2004 15:04
- Localisation : sud de la france
-
- Messages : 1501
- Inscription : dim. 18/avr./2004 15:04
- Localisation : sud de la france
je rencontre un probleme
pour le convertion , j'ai l'impression que ma virgule est ignorer
si je tape 12 je trouve 54 alors que le vrai resultat est 53,6
je sais pas si Pb est à l'aise avec les virgules .
pour le convertion , j'ai l'impression que ma virgule est ignorer
si je tape 12 je trouve 54 alors que le vrai resultat est 53,6
je sais pas si Pb est à l'aise avec les virgules .
Code : Tout sélectionner
** Conversion de temperature
; ** par jbernard
; Declaration des constantes
;** Fenetre**
Enumeration
#Fenetre_0
EndEnumeration
;**Gadget**
Enumeration
#String
#Bouton_Convertir
EndEnumeration
;**procedure pour convertir en Farenheit
Procedure CalculT()
tempf.f = Val(GetGadgetText(#String))
Total= tempf.f*1.8+32
MessageRequester("Information","La conversion en Farenheit est :"+ Str(Total),#MB_OK)
EndProcedure
;** Creation de la fenetre
If OpenWindow(#Fenetre_0,0,0,290,90,"Convertion de Tempèrature",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
StringGadget(#String,55,20,180,20,"",#PB_String_Numeric)
ButtonGadget(#Bouton_Convertir,95,55,100,20,"Convertir")
EndIf
;** Boucle du programme
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case #Bouton_Convertir : CalculT()
EndSelect
Case #PB_Event_CloseWindow
Quitter =#True
EndSelect
Until Quitter
End
-
- Messages : 1554
- Inscription : lun. 24/juil./2006 6:44
- Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E
PB n'y est pour rien, du moins dans ce cas. Le soucis se situe plus ou moins entre
le clavier et le fauteuil.
remplace
par
cela donnera de meilleurs résultat.
N'oublie pas que l'utilisation implicite des variables est par défaut au format entiers ( 'Total' dans ton cas)
et pour la sortie de ton résultat au format texte, passe par StrF pour les float
plutôt que par Str
N'hésite pas à employer EnableExplicit, cela t'obligera à définir explicitement des données
et donc à établir dès le départ les bon format, ce qui t'éviteras ce genre de désagrément.

le clavier et le fauteuil.
remplace
Code : Tout sélectionner
Procedure CalculT()
tempf.f = Val(GetGadgetText(#String))
Total= tempf.f*1.8+32
MessageRequester("Information","La conversion en Farenheit est :"+ Str(Total),#MB_OK)
EndProcedure
Code : Tout sélectionner
Procedure CalculT()
tempf.f = Val(GetGadgetText(#String))
Total.f = tempf*1.8+32.0
MessageRequester("Information","La conversion en Farenheit est :"+ StrF(Total),#MB_OK)
EndProcedure
N'oublie pas que l'utilisation implicite des variables est par défaut au format entiers ( 'Total' dans ton cas)
et pour la sortie de ton résultat au format texte, passe par StrF pour les float
plutôt que par Str
N'hésite pas à employer EnableExplicit, cela t'obligera à définir explicitement des données
et donc à établir dès le départ les bon format, ce qui t'éviteras ce genre de désagrément.

Force et sagesse...
-
- Messages : 1501
- Inscription : dim. 18/avr./2004 15:04
- Localisation : sud de la france
Resultat$ = StrF(Valeur.f [, NombreDeDecimales])
Description
Convertit un nombre à virgule (float) en chaîne de caractères. Un nombre maximum de décimales peut être spécifié. Le nombre sera arrondi si 'NombreDeDecimales 'est plus petit que le nombre de décimales existantes de 'Valeur.f '.
Note: Les nombres entiers signés doivent être convertis avec Str() ou StrQ() et les nombres entiers non signés avec StrU().
Exemple:
Debug StrF(15.546) ; Affichera "15.546".
-----
Extrait de la doc JB
P.S : d'ailleus ça affiche : 15.546000
Description
Convertit un nombre à virgule (float) en chaîne de caractères. Un nombre maximum de décimales peut être spécifié. Le nombre sera arrondi si 'NombreDeDecimales 'est plus petit que le nombre de décimales existantes de 'Valeur.f '.
Note: Les nombres entiers signés doivent être convertis avec Str() ou StrQ() et les nombres entiers non signés avec StrU().
Exemple:
Debug StrF(15.546) ; Affichera "15.546".
-----
Extrait de la doc JB
P.S : d'ailleus ça affiche : 15.546000
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Pour résumer parfaitement :
Code : Tout sélectionner
EntierLong.L = Val(EntierChaine.S)
EntierChaine.S = Str(EntierLong.L)
DecimalFlottant.F = ValF(DecimalChaine.S)
DecimalChaine.S = StrF(DecimalFlottant.F)
-
- Messages : 1501
- Inscription : dim. 18/avr./2004 15:04
- Localisation : sud de la france