Thema: Delphi Teilen

Einzelnen Beitrag anzeigen

Benutzerbild von BUG
BUG

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

Re: Hilfe

  Alt 1. Okt 2008, 22:12
Zitat von Phoenix:
Auf ganze Zahl abrunden: Round(Zahl - 0.5);
Was dann wieder trunc entspricht.

@Topic:

IMHO liegt das ganze an der Ungenauigkeit der Gleitkommazahlen. Wenn sich 3,7 mit dem Datentyp nicht genau darstellen lassen, kommt eben auch nicht 1 heraus.

2 mögliche Lösungen:
  • Nimm eine andere Einheit z.B. Millimeter und rechne mit Ganzzahlen.
  • Addiere vor dem Abrunden einen Toleranzwert (1 mm oder weniger [einfach mal probieren]).
Evtl. könnte es bei Lösung zwei auch nützlich sein, einen anderen Datentypen mit höherer Genauigkeit, z.B. Double oder Currency zu wählen, wenn der Toleranzwert möglichst klein sein soll.

[edit]Aber taaktaaks Lösung ist einfacher und vermutlich die passende für dein Problem.,gibt aber im manchen Fällen, z.B. 2.25, Kommazahlen aus, nicht wie sinnvollerweise gefordert, Ganzahlen.[/edit]

MfG,
Bug
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat