![]() |
div und seine Rundung
Guten Morgen....
ich hatte heute wieder mal :wiejetzt: die Funktion div ergibt ja als Ergebnis eine Ganzzahl. Dann bitte ich um eine Erklärung: 6.50 div 8 = 0 7.00 div 8 = 0 7.50 div 8 = 1 :gruebel: sollte eigentlich auch 0 sein oder ? 8.00 div 8 = 1 Kann mir das jemand erklären ? Danke. |
Re: div und seine Rundung
|
Re: div und seine Rundung
mich wundert es das 7.5 div 8 bei dir compiliert :gruebel:
|
Re: div und seine Rundung
Mich auch, das sollte der Compiler gar nicht erst akzeptieren. Machst Du irgendwelche casts vorher?
|
Re: div und seine Rundung
Danke für die rasche Antwort.
:gruebel: habe ich da was mißverstanden... ich will ja aus einem Float eine Ganzzahl haben. im einfachsten Sinne nach obigem Beispiel möchte ich als Ergebnis: - wie oft paßt (in obigem Beispiel die 8) in den Floatwert. :wink: ein wenig simpel ausgedrückt funktioniert soweit auch gut bis auf die 7,50... da bekomme ich als Ergebnis eine 1 zurück...hätte da aber auch gern eine 0 :wink: [edit]
Delphi-Quellcode:
... das Feld ist ein Float Feld und die Werte darin von 0 bis ... in 0.5 Schritten
ComboBoxTage.ItemIndex:= ZQueryAnlagenDetail.FieldValues['ZEITAUFWAND'] div 8;
[/edit] |
Re: div und seine Rundung
(variant) 7,5 wird beim impliziten Typecast (Variant => Integer) zu 8 aufgerundet, denke ich mal.
|
Re: div und seine Rundung
Zitat:
Gerd Edit: alzaimer war wohl um 7.5 Sekunden ,ähm 8 Sekunden schneller. |
Re: div und seine Rundung
Vielleicht solltest Du mit trunc den Nachkommaanteil abschneiden.
Grüße Klaus |
Re: div und seine Rundung
Also muss man selbst runden. Je nach gewolltem Ergebnis bieten sich da Round(), Trunc(), RoundTo(), SimpleRoundTo() usw. an, ich habe gerade nicht alle Möglichkeiten im Kopf.
|
Re: div und seine Rundung
...nun ja.
dann sollte eigentlich nach Adam Riese die 7,0 auch auf 8 gerundet werden oder ? Zitat:
...bin schon dran :wink: |
Re: div und seine Rundung
Zitat:
|
Re: div und seine Rundung
Zitat:
Nö. 7.0 = 7 7.3 = 7 7.4 = 7 7.5 = 8 7.8 = 8 7.9 = 8 So funktioniert Rundung. |
Re: div und seine Rundung
:oops: ist ja schon etwas länger her...
Danke an alle... |
Re: div und seine Rundung
so....
Trunc war die einfachste Lösung für meine "Sorgen" Danke nochmal für die Mathematikstunde 8) |
Re: div und seine Rundung
Fieldvalues ist ein Variant.
Und wenn du mit einem Variant ein div machst, werden Fließkommazahlen vorher gerundet (round). Edit: Wow, das war ja mehr als bloß ein roter Kasten. Auf jeden Fall habe ich es grad im Code überprüft. Und die Vermutungen, die oben genannt wurden stimmen. :D |
Re: div und seine Rundung
Zitat:
...ich entscheide mich für Pause und Kaffee :thumb: |
Re: div und seine Rundung
Es gibt übrigens auch noch Floor und Ceil, damit wird egal mit welchem Nachkommawert ab- bzw. aufgerundet ;-).
|
Re: div und seine Rundung
Naja, unsere Schulzeit ist ja auch schon ein paar Sonntage her, gell? :zwinker:
[edit] IMHO wären Floor() oder Ceil() hier weniger geeignet. [/edit] |
Re: div und seine Rundung
[OT]
Zitat:
...habe ich mich jetzt geoutet :gruebel: und das ist gut so... PS: für die Jüngeren... DDR ist kein Speichermodul :mrgreen: [/OT] |
Re: div und seine Rundung
Floor macht praktisch das selbe wie Trunc wenn es sich um positive Zahlen handelt, der Unterschied liegt ja nur bei negativen Zahlen und da stimme ich zu, dass Trunc hier besser passt, denn Trunc bei -7,9 ergibt -7, Floor aber -8.
// EDIT: Zitat:
|
Re: div und seine Rundung
...eine schönen Sonntag Euch allen :hi:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz