AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Floor vs. Trunc

Ein Thema von xZise · begonnen am 30. Jul 2006 · letzter Beitrag vom 30. Jul 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

Floor vs. Trunc

  Alt 30. Jul 2006, 22:05
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?
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
fwsp
(Gast)

n/a Beiträge
 
#2

Re: Floor vs. Trunc

  Alt 30. Jul 2006, 22:08
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.
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Floor vs. Trunc

  Alt 30. Jul 2006, 22:10
(Kleiner Tipp: Math ^^)
[Klick]
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Floor vs. Trunc

  Alt 30. Jul 2006, 22:11
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.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
fwsp
(Gast)

n/a Beiträge
 
#5

Re: Floor vs. Trunc

  Alt 30. Jul 2006, 22:12
nicht nach der delphi hilfe.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Floor vs. Trunc

  Alt 30. Jul 2006, 22:13
Na dann probiers halt aus: Es kommt exakt das gleiche Ergebnis raus.

Der einzige signifikante Unterschied ist, dass Trunc einen Int64 zurückgibt.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
fwsp
(Gast)

n/a Beiträge
 
#7

Re: Floor vs. Trunc

  Alt 30. Jul 2006, 22:14
praktisch ist mir das klar. die delphi entwickler werden sich aber was gedacht haben da zu unterscheiden.
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: Floor vs. Trunc

  Alt 30. Jul 2006, 22:15
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
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Floor vs. Trunc

  Alt 30. Jul 2006, 22:16
Argh, da hat er Recht.

Naja fast.

Floor(-2.8 ) gibt nicht 3.0 sondern 3 zurück, einen Integer.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Floor vs. Trunc

  Alt 30. Jul 2006, 22:30
Ah ^^ Danke Also solange der Wert größer als 0 ist es egal ansonsten je nach dem ^^ thx
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:13 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