Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Nachkommastelle prüfen und inc
MagicRain - So 04.11.12 20:32
Titel: Nachkommastelle prüfen und inc
Hallo, und zwar probiere ich schon die ganze zeit herum und habe schon unzählige Threads durch gelesen aber nichts zu meinem Problem gefunden. Ich Möchte Feststellen ob ein div : Double Nachkommastellen hat und wenn dann auf Ganzzahl inc'en.
z.B so....
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| x , y : double; x:= x div $3; y := x; zb y := 178.35
jetzt mein Problem.... if y 0.xx then +1 else = nothing
z.B y := 111.00000000 then nothing...nicht ( +1 ) else ( +1 ) |
aber bei ganzen wert also aus z.B 178.35 wird wegen Kommastellen 179.
Also wenn Kommastellen da sind dann die Ganzzahl runden und die Kommastellen abschneiden. Hat vielleicht einer von euch eine Idee wie man das ganze machen könnte? Hab gar keine Ahnung auch noch nicht so viel mit fpu also float zahlen gemacht.
Moderiert von
Narses: Topic aus Sonstiges (Delphi) verschoben am So 04.11.2012 um 21:08
Martok - So 04.11.12 20:41
Hi!
Also jetzt mal davon abgesehen, dass das syntaktisch (sorry) völliger Quatsch ist (bist du zufällig NC-Programmierer? Da seh ich sowas grade oft ;) ) klingt das was du da schreibst sehr nach
CEIL(), oder?
Grüße,
Martok
MagicRain - So 04.11.12 20:55
Nunja muss das ganze aber in Delphi umsetzen. Also muss das ja irgendwie gehen?! hmmm
mandras - So 04.11.12 22:55
MagicRain hat folgendes geschrieben : |
| Nunja muss das ganze aber in Delphi umsetzen. Also muss das ja irgendwie gehen?! hmmm |
Natürlich geht es irgendwie. Wenn Du nun bitte das Problem entwas genauer beschreiben könntest?
Delphi:
div ist Integer-Division. Ergebnis ganze Zahl immer nach unten gerundet. mod: Rest einer Integer-Division.
trunc (x:real oder double oder extended): Nachkommastellen abschneiden - trunc (132.93)= 132
ceil (x:real oder double oder extended): ggf. auf nächstgrößere ganze Zahl aufrunden. Auszug aus Doku:
Delphi-Quelltext
1: 2: 3:
| Ceil(-2.8) = -2 Ceil(2.8) = 3 Ceil(-1.0) = -1 |
Tranx - Mo 05.11.12 07:07
Die Funktion CEIL hat leider eine Einschränkung: Der Parameter darf Maxint nicht überschreiten. Wie wäre es mit folgendem "Konstrukt":
Delphi-Quelltext
1:
| intVar := int(realVar + 0.999999); |
Dann gilt für Bruchteil = 0.0 : IntVar gleich RealVar, ansonsten gilt IntVar = Ganzteil(RealVar)+1
MagicRain - Mo 05.11.12 20:51
Dankeschön! Erledigt.
MfG
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!