Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Auf- oder Abrunden mit Delphi (https://www.delphipraxis.net/154646-auf-oder-abrunden-mit-delphi.html)

smart 19. Sep 2010 17:17

Auf- oder Abrunden mit Delphi
 
Hi Alle,

wie kan man größere Zahlen mit Delphi auf- oder - abruden?

Viele Grüße
Heike

Whatever 19. Sep 2010 17:18

AW: Auf- oder Abrunden mit Delphi
 
Delphi-Quellcode:
round(x: Real)

Luckie 19. Sep 2010 17:20

AW: Auf- oder Abrunden mit Delphi
 
Such mal im Forum nach "runden". Ich glaube round macht einige Probleme. Interessant wären für dich eventuell noch die Funktionen ceil und floor.

smart 19. Sep 2010 17:38

AW: Auf- oder Abrunden mit Delphi
 
Was mache ich da falsch:
Delphi-Quellcode:
Edit2.Text := IntToStr(round(StrToInt(Edit1.Text)));
das klappt so nicht :cry:

fkerber 19. Sep 2010 17:41

AW: Auf- oder Abrunden mit Delphi
 
Hi!

Gibt es denn eine Fehlermeldung?
Oder was funktioniert nicht?


Liebe Grüße,
Frederic

mkinzler 19. Sep 2010 17:42

AW: Auf- oder Abrunden mit Delphi
 
Oder Trunc(), Ceil(), RoundTo(), Floor(), ...

stahli 19. Sep 2010 17:46

AW: Auf- oder Abrunden mit Delphi
 
Hast Du einen ungültigen "Wert" im Edit (z.B. Leertext)?
Dann probiere mal:

Delphi-Quellcode:
Edit2.Text := IntToStr(round(StrToIntDef(Edit1.Text, 0)));

Luckie 19. Sep 2010 17:47

AW: Auf- oder Abrunden mit Delphi
 
Was will man bei einem Integer runden? :roll:

Ich vermute mal die Fehlermeldung lautet, dass die Datentype nicht passen. Es wird ein Real erwartet, aber die Funktion bekommt ein Integer.

smart 19. Sep 2010 17:48

AW: Auf- oder Abrunden mit Delphi
 
Zitat:

Zitat von mkinzler (Beitrag 1050604)
Oder Trunc(), Ceil(), RoundTo(), Floor(), ...

muss da nicht was in USES setehen?

stahli 19. Sep 2010 17:48

AW: Auf- oder Abrunden mit Delphi
 
@ Luckie: ich Dödel!

Namenloser 19. Sep 2010 17:50

AW: Auf- oder Abrunden mit Delphi
 
Zitat:

Zitat von Luckie (Beitrag 1050607)
Was will man bei einem Integer runden? :roll:

Ich vermute mal die Fehlermeldung lautet, dass die Datentype nicht passen. Es wird ein Real erwartet, aber die Funktion bekommt ein Integer.

Umgekehrt. Es macht zwar keinen Sinn, aber man kann schon einen Integer an round() übergeben - der wird dann impliziert in Real konvertiert. round() gibt allerdings wiederum einen Real-Wert zurück, und damit kann IntToStr() nichts anfangen.

Luckie 19. Sep 2010 17:51

AW: Auf- oder Abrunden mit Delphi
 
Zitat:

Zitat von smart (Beitrag 1050608)
Zitat:

Zitat von mkinzler (Beitrag 1050604)
Oder Trunc(), Ceil(), RoundTo(), Floor(), ...

muss da nicht was in USES setehen?

Steht in der Hilfe.

mkinzler 19. Sep 2010 17:52

AW: Auf- oder Abrunden mit Delphi
 
Ceil() + Floor() sind in Unit Math
Int(), Round(), Trunc() in der Unit System (welche automatisch engebunden wird)

Luckie 19. Sep 2010 17:52

AW: Auf- oder Abrunden mit Delphi
 
Zitat:

Zitat von NamenLozer (Beitrag 1050611)
Zitat:

Zitat von Luckie (Beitrag 1050607)
Was will man bei einem Integer runden? :roll:

Ich vermute mal die Fehlermeldung lautet, dass die Datentype nicht passen. Es wird ein Real erwartet, aber die Funktion bekommt ein Integer.

Umgekehrt. Es macht zwar keinen Sinn, aber man kann schon einen Integer an round() übergeben - der wird dann impliziert in Real konvertiert. round() gibt allerdings wiederum einen Real-Wert zurück, und damit kann IntToStr() nichts anfangen.

OK, trotzdem ist es sinnlos einen Integer runden zu wollen. ;)

smart 19. Sep 2010 17:53

AW: Auf- oder Abrunden mit Delphi
 
vielen lieben Dank an Euch Allen.

smart 19. Sep 2010 18:07

AW: Auf- oder Abrunden mit Delphi
 
Zitat:

Zitat von Luckie (Beitrag 1050615)
OK, trotzdem ist es sinnlos einen Integer runden zu wollen. ;)

Das braucht man im kaufmännischen Bereich.

Luckie 19. Sep 2010 18:09

AW: Auf- oder Abrunden mit Delphi
 
Und was willst du bei 12345 runden?

mkinzler 19. Sep 2010 18:10

AW: Auf- oder Abrunden mit Delphi
 
Vielleicht auf die nächsten 50, 100, 500, 1000?

smart 19. Sep 2010 18:11

AW: Auf- oder Abrunden mit Delphi
 
Zitat:

Zitat von mkinzler (Beitrag 1050621)
Vielleicht auf die nächsten 50, 100, 500, 1000?

genau.

Luckie 19. Sep 2010 18:11

AW: Auf- oder Abrunden mit Delphi
 
Aber nennt man das denn noch runden? :gruebel: Runden kenne ich nur für Nachkommastellen. Und funktioniert das überhaupt mit round?

mkinzler 19. Sep 2010 18:16

AW: Auf- oder Abrunden mit Delphi
 
Ja nennt man auch Runden. Das kann man durch Verschieben des Wertebereiches erzielen:

Delphi-Quellcode:
 Zahl := Round( Zahl / 100) * 100;

smart 19. Sep 2010 18:20

AW: Auf- oder Abrunden mit Delphi
 
Zitat:

Zitat von Luckie (Beitrag 1050623)
Aber nennt man das denn noch runden? :gruebel: Runden kenne ich nur für Nachkommastellen. Und funktioniert das überhaupt mit round?

Wie das funktioniert bin ich noch am testen. Kaufmännisch braucht man z.B. 12345 -> 13000.

himitsu 19. Sep 2010 18:20

AW: Auf- oder Abrunden mit Delphi
 
Delphi-Referenz durchsuchenMath.RoundTo

mkinzler 19. Sep 2010 18:22

AW: Auf- oder Abrunden mit Delphi
 
Hier würde ich eher 12000 erwarten

smart 19. Sep 2010 18:23

AW: Auf- oder Abrunden mit Delphi
 
Zitat:

Zitat von mkinzler (Beitrag 1050630)
Hier würde ich eher 12000 erwarten

Ok, das habe ich mich jetzt verhauen. Sorry.

himitsu 19. Sep 2010 18:24

AW: Auf- oder Abrunden mit Delphi
 
Zitat:

Zitat von OH
Anmerkung: Die Funktionsweise von Round/RoundTo kann mit der Prozedur Set8087CW oder der Funktion SetRoundMode gesteuert werden.

beep

mkinzler 19. Sep 2010 18:26

AW: Auf- oder Abrunden mit Delphi
 
Mit Ceil() würde es auch gehen:

Delphi-Quellcode:
Ceil( 12345 / 1000) * 1000
sollte 13000 ergeben

himitsu 19. Sep 2010 18:30

AW: Auf- oder Abrunden mit Delphi
 
Oder mit Trunc
Delphi-Quellcode:
Trunc((12345 + 999) / 1000) * 1000
:stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:05 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