Tech-Ecke / Delphi Inhalt / Mathematische Operationen

 

     Mathematische Operationen

   Runden  (var Zahl: Integer;)
 

Kaufmännisches Runden

   Zahl := round(3.333);   // Zahl wird den Wert 3 enthalten
 
Zahl :=
RoundTo(3.333, -2); // Zahl wird den Wert 3,33 enthalten - benötigt Math in Uses!
 
Zahl := round(3.333 *100) /100; // ohne Math in Uses!

Aufrunden - benötigt Math in uses!

   Zahl := ceil(3.333);   // Zahl wird den Wert 4 enthalten

Abrunden - benötigt Math in uses!

   Zahl := floor(3.333);   // Zahl wird den Wert 3 enthalten

Nachkommastellen Abschneiden

   Zahl := trunc(3.999);   // Zahl wird den Wert 3 enthalten

 

   Quadrieren  (var Zahl: Integer;)
 

   Zahl := sqr(3);   // Zahl wird den Wert 9 enthalten
 

 

   Wurzel ziehen  (var Zahl: real;)
 

   Zahl := sqrt(9);   // Zahl wird den Wert 3 enthalten
 

 

   Winkelfunktionen  (var Zahl: real;)
 

   Zahl := sin(30);   // Zahl wird den Sinuswert 0,5 enthalten
   Zahl := tan(45);   // Zahl wird den Tangenswert 1 enthalten
 

Kehrwert (sin-1  tan-1)

   Zahl := RadToDeg(arcsin(0.5));   // Zahl wird den Wert 30 (=30°) enthalten
   Zahl := RadToDeg(arctan(1));   // Zahl wird den Wert 45 (=45°) enthalten
 

 

   Gleitkomma (floating point) Problematik

Je nach Länder- bzw. Formateinstellungen werden die Dezimalstellen einer 'reellen Zahl' durch ein Komma (D) oder einem Punkt (USA/UK) von der Zahl getrennt. Um daraus resultierende Fehlermeldungen zu vermeiden, sollte man das Trennzeichen explizit im Code Festlegen. Dies geschieht wie folgt:

   DecimalSeparator := '.';     // setzt den Punkt als Dezimaltrennzeichen
 

Windows initialisiert den Dezimalseparator jedoch immer neu, wenn ein WM_WININICHANGE Event eintritt. Dann entspricht der Dezimalseparator wieder der Ländereinstellung. Das tritt z.B. dann auf, wenn sich der Rechner in den Ruhemodus gefahren hat (Bildschirmschoner). Um dies für die laufende Anwendung zu unterbinden, kann man folgenden Code hinter dem Ereignis OnFormCreate hinterlegen.

   Application.UpdateFormatSettings := false
 

Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !

[letzte Aktualisierung 07.12.2009]