Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Kommazahlen (https://www.delphipraxis.net/14722-kommazahlen.html)

derhoeppi 14. Jan 2004 15:29


Kommazahlen
 
Hallo
Ich schreib gerade mal wieder an einem kleinen Programm für die Schule. Berechnet werden soll der BMI. Nun lasse ich Gewicht und Größe als Daten vom Typ real eingeben. Wenn ich dann den BMI errechnen lasse, dann kommt eine relativ große Kommazahl heraus, die ich gern auf zwei oder drei Zeichen hinter dem Komma beschränken würde. Hat einer einen Rat.
Ich weiß das ich soetwas schon im Lehrbuch der Schule gesehen habe, aber ich bin ja momentan nicht in der Schule.

himitsu 14. Jan 2004 15:32

Re: Kommazahlen
 
Sieh mal in der OH nach Format.

Matze 14. Jan 2004 15:34

Re: Kommazahlen
 
Oder hier

Michael Leyhe 14. Jan 2004 15:35

Re: Kommazahlen
 
Wenn du diese Zahl auf 2 nachkommastellen haben willst dann multipliziere mit 100, runde und zum schluss teile durch 100.

PS. Ich weiss nicht ob es in Delphi eine Vorgefertigte Komponente gibt die dies tut, aber dieses klappt auch!

fkerber 14. Jan 2004 15:57

Re: Kommazahlen
 
Hi!

Da du die Zahl ja wohl als String ausgaben willst, kann ich dir auch das empfehlen:

Delphi-Quellcode:
edit1.Text:=FloattostrF(bmi, FFfixed, 10,2);
10 sind die Stellen vor dem Komma, zwei die danach.

Ich hoffe ich hab keinen Fehler drin, iss außem Kopf.

Ciao fkerber

derhoeppi 14. Jan 2004 15:58

Re: Kommazahlen
 
Super das funktioniert schon mal. Die Forumsuche hatte ich schon vorher ausprobiert, hab aber wohl nicht die richtigen Suchbegriffe eingegeben. Nun hab ich ein weiteres Problem. Und zwar habe ich einen Zahlenbereich den ich mit einer if-then-else Anweisung verknüfen möchte. Ich habe einen BMI-Wert von unter 20, dann einen von 20-24, dann von 24-30, 30-39 und dann größer als 39. Wie kann ich die Zahlenbereiche 20-24,24-30 und 30-39 in solch eine Anweisung einbauen???

Mein bisheriger Quellcode dazu der allerdings nicht funzt:
Delphi-Quellcode:
if bmi<20 then begin label5.caption:='Sie haben untergewicht.'; end else
if bmi=20..25 then begin label5.caption:='Sie haben Normalgewicht.'; end else
if bmi=24..29 then begin label5.caption:='Sie haben leichtes bis mittelmäßiges Übergweicht.'; end else
if bmi=29..39 then begin label5.caption:='Sie haben deutliches Übergewicht.'Self; end else
if bmi>39 then begin label5.Caption:='Sie haben sehr starkes Übergewicht.'; end;

fkerber 14. Jan 2004 16:00

Re: Kommazahlen
 
Hi!

Normalerweise gilt, neue Frage neuer Thread aber ich geb dir mal noch ne Antwort :)

Versuchs mal mit

Delphi-Quellcode:
if bmi in [20..24] then ...
Das müsste gehen.

Ciao fkerber

derhoeppi 14. Jan 2004 16:10

Re: Kommazahlen
 
Leider funzt
Delphi-Quellcode:
if bmi in [20..24] then ...
ee nicht, da es sich nicht um integer Werte handelt sondern um real. Gibt es soetwas auch für real???

Ich wollte keinen neuen Thread aufmachen, da ich alles in einem Thread haben wollte.

fkerber 14. Jan 2004 16:26

Re: Kommazahlen
 
Hi!

Dann mach es eben so:

Delphi-Quellcode:
if ((bmi>20) and (bmi<24)) then ...
Ciao fkerber


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz