|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : arrondir un nombre selon nombre dans une listbox... [ Divers / Aide et documentation ] (elt93)
Informations & options pour cette discussion
|
samedi 17 mai 2008 à 18:25:30 |
arrondir un nombre selon nombre dans une listbox...

elt93
|
Bonjour, Je travaille sur un logiciel de calcul ou jaimerais ajouter une fonction arrondir, en dessous se situe une TListBox avec les nombres de 1 à 5 sur chaque ligne que l'utilisateur selectionne pour dire combien de nombre veut-il apres la virgule, j'ai tenté ceci, mais ca n'a pas marché : var a: extended; b: extended; e: string; begin if arrondir.checked then try if nombre.Items.Strings[nombre.ItemIndex]<> '1' then e:= '0.0' else if nombre.Items.Strings[nombre.ItemIndex] <> '2' then e:= '0.00' else if nombre.Items.Strings[nombre.ItemIndex] <> '3' then e:= '0.000' else if nombre.Items.Strings[nombre.ItemIndex] <> '4' then e:= '0.0000' else if nombre.Items.Strings[nombre.ItemIndex] <> '5' then e:= '0.00000' ; finally end;
if cube.Checked then try if vol.checked then try a:= strtofloat(la.Text); b:= a*a*a; finally if arrondir.checked then FormatFloat(e , b); Memo1.Lines.add('Volume du cube = '+floattostr(b)+ ' cm3'); if CheckBox1.Checked then Memo1.Lines.add('Formule (volume du cube) : longueur arête x longueur arête x longueur arête '); end; ... end;Cordialement, Merci d'avance pour votre aide !
|
|
|
|
samedi 17 mai 2008 à 19:17:18 |
Re : arrondir un nombre selon nombre dans une listbox...
|
|
samedi 17 mai 2008 à 19:26:13 |
Re : arrondir un nombre selon nombre dans une listbox...

f0xi
|
ComboBox1 (cbxFloatPrec) > 0, 1, 2, 3, 4 ... 9, Ne pas arrondir
var FltPrec : integer;
uses Math;
....
procedure TFormX.cbxFloatPrecChange(Sender:TObject); begin case cbxFloatPrec.ItemIndex of 10 : FltPrec := -1; else FltPrec := cbxFloatPrec.ItemIndex; end; end;
var S: string; F: extended; begin F := a*a*a;
case FltPrec of -1 : S := format('%f',[F]); 0 : S := format('%d',[Round(F)]); else S := format('%.*f',[FltPrec,RoundTo(F, -FltPrec)]); end; Memo1.Lines.Add('Volume du cube : '+S+' cm3'); end;
|
|
|
|
samedi 17 mai 2008 à 19:46:45 |
Re : arrondir un nombre selon nombre dans une listbox...

elt93
|
Merci beaucoup, Mais pourquoi lorsque j'execute, et que je clique , le bouton, j'ai une exception disant: " n'est pas une valeur en virgule flottante correcte.
|
|
|
|
samedi 17 mai 2008 à 20:06:45 |
Re : arrondir un nombre selon nombre dans une listbox...

elt93
|
Merci F0xi, je naivais pas vu ton poste avant de mettre mon dernier post. J'ai adapté ton code à mon logiciel, j'ai aucune exception mais ca ne marche pas, le nombre ne s'arrondit pas, voici ce que j'ai fait : uses Math var FltPrec : integer; (nombre = Combobox)
procedure TForm1.nombreChange(Sender: TObject); begin case nombre.ItemIndex of 10 : FltPrec := -1; else FltPrec := nombre.ItemIndex; end; end;
procedure TForm1.Button27Click(Sender: TObject); var a: extended; b: extended; e: string; begin if cube.Checked then try if vol.checked then try a:= strtofloat(la.Text); b:= a*a*a; finally if arrondir.Checked then case FltPrec of -1 : e := format('%f',[b]); 0 : e := format('%d',[Round(b)]); else e := format('%.*f',[FltPrec,RoundTo(b, -FltPrec)]); end;
Memo1.Lines.add('Volume du cube = '+floattostr(b)+ ' cm3'); if CheckBox1.Checked then Memo1.Lines.add('Formule (volume du cube) : longueur arête x longueur arête x longueur arête '); end;
Merci beaucoup pour votre aide
|
|
|
|
dimanche 18 mai 2008 à 07:46:19 |
Re : arrondir un nombre selon nombre dans une listbox...

f0xi
|
if arrondir.Checked then // ne sert plus a rien car option "ne pas arrondir" dans la combobox en item 10 case FltPrec of -1 : e := format('%f',[b]); 0 : e := format('%d',[Round(b)]); else e := format('%.*f',[FltPrec,RoundTo(b, -FltPrec)]); end; Memo1.Lines.add('Volume du cube = '+e+ ' cm3');
|
|
|
|
dimanche 18 mai 2008 à 07:50:10 |
Re : arrondir un nombre selon nombre dans une listbox...

f0xi
|
Réponse acceptée !
et "nombre" doit etre remplis comme suit (propriété "Strings") : 0 1 2 3 4 5 6 7 8 9 ne pas arrondir
l'option Ne pas arrondir doit retourner FltPrec = -1 (evenement onchange) on pourrait même compliquer les choses en ajoutant une autre combobox permettant de choisir l'arrondis, au plus petit, au plus prés, au plus grand (floor, round, ceil).
|
|
|
|
dimanche 18 mai 2008 à 10:57:07 |
Re : arrondir un nombre selon nombre dans une listbox...

elt93
|
Ok super, vraiment merci mais quand je met la comboBox sur ne pas arrondir ca l'arrondit quand meme a deux chiffres après la virgule. Vraiment merci f0xi !
|
|
|
|
dimanche 18 mai 2008 à 16:52:14 |
Re : arrondir un nombre selon nombre dans une listbox...

elt93
|
Desole, pour mon dernier post c'était une erreur d ema part, il fallaiut juste entrer 11 à la place de 10 puisque 'Ne pas arrondir se trouvait à la 11 eme ligne en comptant le 0 et le 10.
|
|
|
|
lundi 19 mai 2008 à 02:46:57 |
Re : arrondir un nombre selon nombre dans une listbox...

f0xi
|
Réponse acceptée !
oui, les programmeurs compte a partir de 0 ...  bytes, 256 valeurs ... de 0 a 255 word, 65536 valeurs ... de 0 a 65535 integer, 2^32 valeurs ... de -2^31 a 2^31-1 longword, 2^32 valeurs ... de 0 a 2^32-1 d'ailleur ... 2^0 = 1 
|
|
|
Cette discussion est classé dans : nombre, arrondir, checked, if, then
Répondre à ce message
Sujets en rapport avec ce message
choix radiobutton [ par watrem ]
Bonjour voila j'ai installer sur une fiche 2 radiobutton , chaque radio button a pour fonction de ranger des donnees numeriques soit par fichier de 20
arrondir un nombre [ par 980074 ]
bête petite question : comment arrondir, en pascal, un nombre entamé vers l'unité supérieure? TRUNC + 1 n'est pas valable pour les nombres entiers...e
Arrondir un nombre décimal à 2 chiffres après la virgule ? [ par Rowan ]
Bonjour,Tous d'abord un grand merci à DELPHIPROGqui a répondu à mon probleme de tranformationde point en virgule et inversement.J'ai toujours un probl
Compter le nombre de formes dans une image binaire [ par MasterNKZ ]
Salut tout le monde,Bin g presque tout dis dans le titre, je voudrai savoir si quelqu'un pouvait me dire si il connaissait un algo capable de compter
problème de MessageBox [ par eowene ]
Bonjour à tous.Ce que je veux faire parrait simple mais pour moi, ça ne lest pas.Voilà, j'ai une feuille sur laquelle il y a un bouton. Ce bouton appe
Insertion d'un nombre a virgule dans une listbox [ par lacerto84 ]
Salut,J'ai un erreur ECONVERT chaque fois que j'essie d'inserer un nombre a virgule dans une listbox.Pouvez vous m'aider !Merci.
DbCtrlGrid [ par Jam_12 ]
Bonjour à tousj'utilise un dbctrlgrid pour affichage du contenu de mes tables/requettes, j'ai fixé le nombre de panel a 20. en mode execution le nombr
Comptage auto du nombre d'impressions [ par sebflouflou ]
bonjour pour mon applications j'ai besoin de compter le nombre d'impression de façon automatique. si vous avez la solution je suis prenant car ca fait
générer un nombre [ par cricri_b34 ]
Jaimerais savoir comment faire pour générer un nombre entre 1 à 100et ce nombre serait la caption d'un boutton (Button.caption)
Tester si un nombre reel est entier [ par Sylvainlefou ]
boujourJe cherche une fonction qui test si un reel est entier.Ce genre de fonction existe dans d'autres languages sous le nom de "isint" mais je n'est
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|