Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Floor vs. Trunc (https://www.delphipraxis.net/74227-floor-vs-trunc.html)

xZise 30. Jul 2006 22:05


Floor vs. Trunc
 
Wo ist der unterschied zwischen Floor und Trunc?

Floor(9.1) = 9
Trunc(9.1) = 9
Das eine mal wird abgerundet und das andere mal wird abgeschnitten, aber sie führen immer auf das gleiche Ergebnis, oder gibt es bei Floor einen 2. Parameter der Angibt auf welche Stelle gerundet werden soll?

fwsp 30. Jul 2006 22:08

Re: Floor vs. Trunc
 
das eine rundet, das andere wandelt um...

Zitat:

Floor (Funktion)
Die Funktion rundet Variablen ab.

Unit

Math

Kategorie

Arithmetik

Delphi-Syntax:

function Floor(const X: Extended): Integer;

C++ Syntax:

extern PACKAGE int __fastcall Floor(const Extended X);

Beschreibung

Floor rundet die mit X angegebene Variable folgendermaßen ab:

Floor(-2,8) = -3

Floor(2.8) = 2

Floor(-1.0) = -1

Hinweis: Der absolute Wert von X muss kleiner als MaxInt sein.
Zitat:

Trunc (Funktion)

Die Funktion konvertiert eine Gleitkommazahl in einen Integer-Wert.

Unit

System

Kategorie

Arithmetik

Delphi-Syntax:

function Trunc(X: Extended): Int64;

Beschreibung

In Delphi konvertiert Trunc eine Gleitkommazahl in einen Integer-Wert. X ist ein Ausdruck des Typs Real. Die Funktion gibt einen Int64-Wert mit dem gegen 0 gerundeten Wert von X zurück.

Liegt der Integer-Wert von X außerhalb des Wertebereichs einer Int64-Zahl, wird eine EInvalidOp-Exception ausgelöst.

xZise 30. Jul 2006 22:10

Re: Floor vs. Trunc
 
(Kleiner Tipp: Math ^^)
[Klick]

3_of_8 30. Jul 2006 22:11

Re: Floor vs. Trunc
 
Doch, in der Unit Math.

Ich denke mal, dass Floor intern Trunc aufruft. Obwohl, könnte auch sein, dass der Prozessor in der FPU auch nen Floor-Befehl kennt und der aufgerufen wird. Dann dürfte das so ziemlich gleich schnell sein, denke ich.

@fwsp: Beides rundet ab und gibt einen Integer zurück.

fwsp 30. Jul 2006 22:12

Re: Floor vs. Trunc
 
nicht nach der delphi hilfe.

3_of_8 30. Jul 2006 22:13

Re: Floor vs. Trunc
 
Na dann probiers halt aus: Es kommt exakt das gleiche Ergebnis raus.

Der einzige signifikante Unterschied ist, dass Trunc einen Int64 zurückgibt.

fwsp 30. Jul 2006 22:14

Re: Floor vs. Trunc
 
praktisch ist mir das klar. die delphi entwickler werden sich aber was gedacht haben da zu unterscheiden.

Flocke 30. Jul 2006 22:15

Re: Floor vs. Trunc
 
Es kommt nur das gleiche Ergebnis heraus, wenn die Zahl positiv ist.

Floor rundet immer ab.
Trunc rundet nach 0.

Also:
Floor(-2.8) = -3.0
Trunc(-2.8) = -2

3_of_8 30. Jul 2006 22:16

Re: Floor vs. Trunc
 
Argh, da hat er Recht.

Naja fast.

Floor(-2.8 ) gibt nicht 3.0 sondern 3 zurück, einen Integer.

xZise 30. Jul 2006 22:30

Re: Floor vs. Trunc
 
Ah ^^ Danke ;) Also solange der Wert größer als 0 ist es egal ansonsten je nach dem ^^ thx :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:56 Uhr.
Seite 1 von 2  1 2      

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