Gambas France BETA


Pas de compte ? Incription

choisir le nombre de chiffre après la virgule

Ce sujet est résolu.

1
AuteurMessages
stracoma#1 Posté le 2/9/2015 à 23:17:35
Apprentissage programmation pour le plaisirBonsoir à vous tous:
1
2
3
PUBLIC SUB Main()
DIM nombre AS FLOAT = 10.0
PRINT nombre / 3

SVP comment faire pour limiter le résultat à 2 chiffres après la virgule (avoir 1.33 au lieu de 1.3333333 )
Merci
SVP patience avec moi car neurones > 50 ans
Reivillo#2 Posté le 3/9/2015 à 00:24:46
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »Bonsoir stracoma.

Regarde la Fonction Format$... ;)
1
2
3
4
DIM nombre AS FLOAT = 10.0
DIM nombre2 AS FLOAT = Val(Format$(nombre / 3, "-#.##"))

PRINT nombre / 3, Format$(nombre / 3, "-#.##"), nombre2
Reivillo
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
vuott#3 Posté le 3/9/2015 à 02:02:52
Ne cedere ineluctabili possimusHello stracoma,

seulement comme curiosité... vous pouvez également utiliser la fonction extern de C printf(), correctement formaté. :bounce:

1
2
3
4
5
6
7
8
9
10
11
12
' int printf(const char *format, ...)
' Sends formatted output to stdout.
PRIVATE EXTERN printf($format AS STRING, num AS FLOAT) AS INTEGER IN "libc:6"


PUBLIC SUB Main()

DIM nombre AS FLOAT = 10.0

printf("%.3lf", nombre / 3)

END
« Vita non suavis esse potest, nec Mors amara. »
stracoma#4 Posté le 3/9/2015 à 23:08:39
Apprentissage programmation pour le plaisirMerci à vous. Vos réponses répondent à moitié à mon soucis.
Format$(nombre / 3, "-#.##") permet de formater du texte.
Mais comment initialiser une variable nombre2 en se limitant à 2 chiffres après la virgule:
1
2
3
4
DIM nombre1 AS INTEGER = 10
DIM nombre2 AS FLOAT
nombre2 = nombre1 / 3
comment faire pour avoir nombre2 = 3.33

Car je peux utiliser Format$(nombre / 3, "-#.##") dans un textbox.text ou valuebox.text et pas dans valuebox.value
Merci
SVP patience avec moi car neurones > 50 ans
vuott#5 Posté le 3/9/2015 à 23:24:19
Ne cedere ineluctabili possimus
Car je peux utiliser Format$(nombre / 3, "-#.##") dans un textbox.text ou valuebox.text et pas dans valuebox.value
Merci

Bonsoir stracoma,
...je ne sais pas. Toutefois, si vous souhaitez obtenir ce résultat, vous pouvez insérer la fonction Val():
1
2
3
PUBLIC SUB Form_Open()
ValueBox1.Value = Val(Format$(10 / 3, "-#.###"))
END
« Vita non suavis esse potest, nec Mors amara. »
Reivillo#6 Posté le 4/9/2015 à 11:58:21
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »@ vuott.

J'avais pas pensé, pour la mise en value... :oops:
J'ai corrigé ma première réponse en conséquence.

Merci à toi... ;)
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
stracoma#7 Posté le 4/9/2015 à 13:16:09
Apprentissage programmation pour le plaisirMerci à vous. ça marche bien
1
2
3
4
5
6
PUBLIC SUB Button1_Click()

ValueBox2.Value = Val(Format$(ValueBox1.Value / 3, "-#.##"))
Label1.Text = Format$(ValueBox1.Value / 3, "-#.##")

END
SVP patience avec moi car neurones > 50 ans
vuott#8 Posté le 8/9/2015 à 23:03:45
Ne cedere ineluctabili possimusLe membre Top Fuel du forum italien gambas-it.org suggère cette solution intéressante:

1
2
3
4
5
6
7
8
9
10
11
PUBLIC SUB Main()

DIM numero AS FLOAT
DIM decimali AS BYTE

numero = 233658.5932926
decimali = 3

PRINT CLong(numero * 10 ^ decimali) / 10 ^ decimali

END
« Vita non suavis esse potest, nec Mors amara. »
Reivillo#9 Posté le 9/9/2015 à 11:23:57
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »@ vuott.

Pour Info
. On peut créer une autre Function,
afin d'éviter l'utilisation des fonctions Format$ & Val()... ;)
1
PRINT Ndcml(10 / 3, 2)
1
2
3
4
5
6
7
8
9
PUBLIC FUNCTION Ndcml($fValue AS FLOAT, OPTIONAL $iDcml AS INTEGER = 0) AS FLOAT

IF $iDcml > 0 THEN
$iDcml = 10 ^ $iDcml
$fValue = CLong($fValue * $iDcml) / $iDcml
ENDIF
RETURN $fValue

END
Reivillo.
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
vuott#10 Posté le 10/9/2015 à 00:30:13
Ne cedere ineluctabili possimusBonsoir Reivillo,

notre ami, Top Fuel, dit qu'il est préférable utiliser CLong() plutôt que Int(), car, si après la multiplication initiale le numéro dépasse les limites d'un entier (et cela peut arriver), la partie excédentaire est tronqué, et le numéro final changera.
« Vita non suavis esse potest, nec Mors amara. »
spheris#11 Posté le 10/9/2015 à 12:25:14
Bonjour,
Un simple :

1
Round(mavaleur, -2) ' pour 2 chiffres apres la virgule


;)
Reivillo#12 Posté le 10/9/2015 à 13:11:45
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »Bonjour @ vuott ,sphéris & Autres.

La prochaine fois, je repasserai les Fonctions arithmétiques en revues avant de Poster... :oops:
Comme quoi, plusieurs avis valent mieux qu'un seul.
Bon! Là va falloir que je révise toute les Commandes & Fonctions Gambas3, en veillée cet Hiver... :D

Reivillo.
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
vuott#13 Posté le 10/9/2015 à 19:00:28
Ne cedere ineluctabili possimusReivillo, ne dis pas ainsi. :|

Reivillo.... super ! :cheers:
« Vita non suavis esse potest, nec Mors amara. »
1