Gambas France BETA


Pas de compte ? Incription

trop de chiffres après la virgule

Ce sujet est résolu.

1
AuteurMessages
jlm#1 Posté le 7/7/2017 à 10:50:51
Bonjour, depuis la version actuelle de gambas mon logiciel de centrage affiche les résultats avec une douzaine de chiffres après la virgule, cela ne se produisait pas avant.
Voici mon code, soyez indulgents je suis seul avec aucune notion de programmation ayant quitté l'école à l'age de 14 ans, j'en ai 68 maintenant.

Public Sub Button1_Click()

cmo.value = 0.6666 * ((saisieCE.Value * saisieCE.Value) + (saisieCE.Value * saisieCS.Value) + (saisieCS.Value * saisieCS.Value)) / (saisieCE.Value + saisieCS.Value)

centrage.Value = cmo.Value * saisiePourcentage.Value / 100
cmo.visible = True
Label6.visible = True


centrage.visible = True
Label7.visible = True
End
Jack#2 Posté le 7/7/2017 à 11:15:56
Bonjour jlm,

l'age importe peu, il n'y a que la volonté et le désir d'apprendre qui comptent.
pour ta question je pense qu'il faudrait utiliser la fonction format$.
centrage.value = format$(cmo.Value * saisiePourcentage.Value / 100, "0.000")
NB : 0.000 représente le nombre de décimales. si tu veux 4 décimales alors tu mettras "0.0000"
Pour un code démocratique nationalisons Gambas.
Patrick#3 Posté le 7/7/2017 à 12:22:35
Bonjour,
J'aurai plutôt mis ça :
1
centrage.value = Round(cmo.Value * saisiePourcentage.Value / 100, -3)
-3 représente le nombre de décimales.
jlm#4 Posté le 7/7/2017 à 12:45:58
Merci à vous deux, round fonctionne pour le centrage, mais je ne sais pas l'écrire pour cmo.Value qui est la longueur de la corde moyenne, cela me retourne une erreur
jlm#5 Posté le 7/7/2017 à 13:22:19
Merci beaucoup Jack et Patrick, maintenant ça fonctionne

Public Sub Button1_Click()

cmo.Value = Round(0.666 * ((saisieCE.Value * saisieCE.Value) + (saisieCE.Value * saisieCS.Value) + (saisieCS.Value * saisieCS.Value)) / (saisieCE.Value + saisieCS.Value), -3)

centrage.Value = Round(cmo.Value * saisiePourcentage.Value / 100, -3)
cmo.visible = True
Label6.visible = True


centrage.visible = True
Label7.visible = True
End
linuxos#6 Posté le 7/7/2017 à 14:04:24
Un peu de sel, de poivre et la crevette sera... Bonjour,
Attention: Il me semble que les 2 fonctions: FORMAT et ROUND ne font pas la meme chose.
FORMAT: met en forme un nombre en forme juste pour l'affichage sans modification de sa valeur

ROUND:
Valeur = Round ( Nombre [ , Chiffres ] )
Arrondit un nombre à son entier le plus proche, si Chiffres n'est pas spécifié.
Si Chiffres est spécifié, l'arrondi est à 10 ^ Chiffres

Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
Patrick#7 Posté le 7/7/2017 à 16:27:49
FORMAT: met en forme un nombre en forme juste pour l'affichage sans modification de sa valeur
Linuxos je ne suis pas tout à fait d'accord, FORMAT modifie bien la valeur d'une variable texte de la même façon que ROUND une variable numérique, tu peux essayer :
1
2
3
ValueBox1. Value = 1.123456
ValueBox1.Text = Format(Replace(ValueBox1.Text, ",", "."), "0.000")
PRINT ValueBox1.Value
linuxos#8 Posté le 8/7/2017 à 02:28:06
Un peu de sel, de poivre et la crevette sera... Patrick,

Il n'y a pas de soucis, je ne me souvenais pas que FORMAT faisait l'arrondissement aussi, autant pour moi.
Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
spheris#9 Posté le 19/7/2017 à 22:54:31
1
Round(valuebox1.value,2) '2 chiffres après la virgule

;)
1