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

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ändereinstellungen eines Betriebsystems 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, kann man in Delphi den Festlegen, durch welches Zeichen die Dezimalstellen von einer Zahl getrennt werden. Die geschieht wie folgt:

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

Jetzt ist es aber so, dass Windows den DecimalSeparator immer dann neu initialisiert, wenn ein WM_WININICHANGE eintritt. Dann wäre der DecimalSeparator wieder der 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, sollte 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]