AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Float in zwei Integer zerlegen

Ein Thema von Shark99 · begonnen am 19. Jun 2015 · letzter Beitrag vom 21. Jun 2015
Antwort Antwort
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.049 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

AW: Float in zwei Integer zerlegen

  Alt 20. Jun 2015, 12:56
Wer Fließkommazahlen auf exakte Gleichheit vergleicht, wird geteert und gefedert. Wie oft denn noch?
Blödsinn, ein Float kann sehr wohl als Index benutzt werden. Man darf nur nicht weiter rechnen damit oder ihn zerlegen und wieder zusammenfügen!
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.688 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Float in zwei Integer zerlegen

  Alt 20. Jun 2015, 13:19
Also wenn die Zeit als Index dient und vor allem mit anderen Zeitwerten verglichen werden soll, ist ein TDateTime (=Double) so ziemlich die schlechtest mögliche Struktur die man wählen könnte. Die Gründe werden hier fast wöchentlich durchgekaut. Nimm einfach statt eines TDateTimes eien Cardinal, hau das Datum als Unix-Timestamp da rein, und fertig ist die Laube. Passt sogar in TListItem.Data. Ab 2038 wird man vermutlich aber mal einen Wartungslauf machen müssen, oder man nimmt einen Int64 und hat ein paar Jahrtausende Ruhe (muss dann aber auch wieder Pointer im ListItem hinterlegen).
Aber mit dem Float wirst du dir irgendwann gewaltig den Rücken brechen hier.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#3

AW: Float in zwei Integer zerlegen

  Alt 20. Jun 2015, 16:44
Wer Fließkommazahlen auf exakte Gleichheit vergleicht, wird geteert und gefedert. Wie oft denn noch?
Blödsinn, ein Float kann sehr wohl als Index benutzt werden. Man darf nur nicht weiter rechnen damit oder ihn zerlegen und wieder zusammenfügen!
Und das ist dann auch Blödsinn. Natürlich darf man rechnen, zerlegen und wieder zusammenfügen. Nur e-x-a-k-t v-e-r-g-l-e-i-c-h-e-n nicht. Aber Dir muss ich das ja nicht erklären, sondern höchstens um Formulierungen ringen.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.049 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

AW: Float in zwei Integer zerlegen

  Alt 20. Jun 2015, 19:45
Wer Fließkommazahlen auf exakte Gleichheit vergleicht, wird geteert und gefedert. Wie oft denn noch?
Blödsinn, ein Float kann sehr wohl als Index benutzt werden. Man darf nur nicht weiter rechnen damit oder ihn zerlegen und wieder zusammenfügen!
Und das ist dann auch Blödsinn. Natürlich darf man rechnen, zerlegen und wieder zusammenfügen. Nur e-x-a-k-t v-e-r-g-l-e-i-c-h-e-n nicht. Aber Dir muss ich das ja nicht erklären, sondern höchstens um Formulierungen ringen.
Irgendwie bezweifle ich den Nutzen eines Indexes, den man nur beinahe vergleichen kann.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#5

AW: Float in zwei Integer zerlegen

  Alt 20. Jun 2015, 20:09
Irgendwie bezweifle ich den Nutzen eines Indexes, den man nur beinahe vergleichen kann.
Gibt es, nennt sich SVerweis in Excel und hat eine Option mit der man einstellen kann ob das Suchkriterium genau sein muss oder nur in der Nähe.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.879 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Float in zwei Integer zerlegen

  Alt 20. Jun 2015, 20:37
Als Index aber alles andere als optimal
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#7

AW: Float in zwei Integer zerlegen

  Alt 20. Jun 2015, 20:55
Als Index aber alles andere als optimal
Wenn man nicht gerade einen Hash-basierte Index hat, kann man auch Bereichsabfragen (Wert +/- Epsilon) beschleunigen.

Ansonsten hat sich die Diskussion imho etwas festgelaufen. Eine Lösung für das konkrete Problem (siehe Titel) wurde ja schon genannt und für das eigentliche Problem (die Performance) fehlen Informationen zu den Daten und der Anwendung.

Geändert von BUG (20. Jun 2015 um 22:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Float in zwei Integer zerlegen

  Alt 21. Jun 2015, 10:28
Wenn Du nicht vor hast mit den Daten irgendeine Operation durchzuführen, mach's über einen Typecast
Delphi-Quellcode:
type
  TTrenner=packed record t1,t2=integer; end;


...
x.DTpart1:=ttrenner(MyValue).t1;
x.DTpart2:=ttrenner(MyValue).t2;
...
Nur habe ich so meine Zweifel, daß das gut geht.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 23:26 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