![]() |
Logarithmus Log zu Delphi
Habe leider immer wieder Geleitkommaüberläufe.
Der Ausgang..
Code:
das ganze nach Delphi
b ist Long..
b = (Log(Sqr(Spectrum(i1).r * Spectrum(i1).r + Spectrum(i1).i * Spectrum(i1).i) + 0.0001) + 9.21034037197618) * q1
Delphi-Quellcode:
bin mir aber nicht sicher ob LN der richtige Datentyp ist.
b: Single;
b := (LN(Sqr(Spectrum[i1].r * Spectrum[i1].r + Spectrum[i1].i * Spectrum[i1].i) + 0.0001) + 9.21034037197618) * q1; Alternativen Wenn nicht? Keine Ahnung wie ich die Ergebnisse wenn -NAN, +NAN abfangen soll. Ungültige Gleitkomma Operationen. grrr... Muss dabei sagen das ich kein Mathe experte bin.. gruss |
AW: Logarithmus Log zu Delphi
Ich habe Delphi noch nicht gestartet, aber ist das Ergebnis nicht vom Typ Extended?
|
AW: Logarithmus Log zu Delphi
Hallo,
Zitat:
![]() |
AW: Logarithmus Log zu Delphi
Zitat:
Delphi-Quellcode:
es nutzt nur nichts deshalb wieder aus kommentiert.
constructor TSpectrum.Create;
begin // Saved8087CW := Default8087CW; // Set8087CW($133f); FFFTSize := 2048; FFTLog := 11; end; try except auch nicht! sobald ich hier abfrage
Delphi-Quellcode:
b := (LN(Sqr(Spectrum[i1].r * Spectrum[i1].r + Spectrum[i1].i * Spectrum[i1].i) + 0.0001) + 9.21034037197618) * q1;
und die Rückgabe +NAN oder -NAN ist dann kracht es. gruss |
AW: Logarithmus Log zu Delphi
sqr in Visual basic -> Square root , also Quadrat Wurzel
sqr in Delphi -> Square -> Quadratzahl sqrt in Delphi -> Square root Quelle: ![]() Grüße Klaus |
AW: Logarithmus Log zu Delphi
Zitat:
Was ist mit LN? Danke! gruss |
AW: Logarithmus Log zu Delphi
|
AW: Logarithmus Log zu Delphi
Zitat:
![]() In Delphi code, Ln returns the natural logarithm (Ln(e) = 1) of the real-type expression X. Grüße Klaus |
AW: Logarithmus Log zu Delphi
Zitat:
Leider habe ich trotzdem das Problem mit -NAN obwohl ich schon den Überlauf prüfe.
Delphi-Quellcode:
Schlage mich damit jetzt schon ein paar Tage mit rum. ;)
function LimitedSingleValue(doubleVal: double): single;
begin if doubleVal > MaxSingle then result := MaxSingle else if doubleVal < MinSingle then result := MinSingle else result := doubleVal; end; Also wenn an doubleVal der wert -NAN ankommt dann kracht es trotzdem. Zitat:
gruss |
AW: Logarithmus Log zu Delphi
.. du könntest zusätzlich auf isNAN testen.
Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:28 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