Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Sqr nicht das selbe .. (https://www.delphipraxis.net/157747-sqr-nicht-das-selbe.html)

EWeiss 23. Jan 2011 17:16

Sqr nicht das selbe ..
 
Hab ein kleines Programm geschrieben in VB welches ich nach Delphi protiere

Wie kann ich Sqr verwenden damit ich auf das gleiche Ergebnis komme?
in VB ist Sqr als Double deklariert.
in Delphi als Real(Extended) oder als Integer.

Deshalb kommt es zu unterschiedlichen Ergebnissen.

Delphi-Quellcode:
  Dx := 331;
  Dy := 50;
  LenI := Sqr(Dx * Dx - Dy * Dy);
´
Ergebnis ist -1422844167

Code:
Dx = 331
Dy = 50
LenI = Sqr(Dx * Dx + Dy * Dy)
Ergebnis ist 335

Das hat zur folge das mir in Delphi die richtigen Maus positionen nicht übergeben werden
und mein vergleich immer ins negative geht.

gruss

Sir Rufo 23. Jan 2011 17:39

AW: Sqr nicht das selbe ..
 
Weil

1.
Code:
VB = SQR = Wurzel
Delphi = SQR = Quadrat
und
2.
Code:
LenI := Sqr(Dx * Dx - Dy * Dy);
LenI = Sqr(Dx * Dx + Dy * Dy)
Wie denn Minus oder Plus, was soll denn gerechnet werden?

Also was in VB so aussieht
Code:
LenI = Sqr(Dx * Dx - Dy * Dy)
sieht in Delphi so aus
Delphi-Quellcode:
LenI := Sqrt(Dx * Dx - Dy * Dy)

EWeiss 23. Jan 2011 17:56

AW: Sqr nicht das selbe ..
 
Zitat:

Wie denn Minus oder Plus, was soll denn gerechnet werden?
Ahh jo danke hab mich verschrieben :)

so geht's jetzt
Delphi-Quellcode:
Leni := round(Sqrt(Dx * Dx + Dy * Dy));
Weil die positionen der Maus übergeben werden und die sind bei TPoint nun mal Longint ;)

Zitat:

Kaum macht man's richtig - schon funktioniert's
nö bei dir auch nicht ;) Hehehhehe (kleiner Spass)

Thanks


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:53 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 by Thomas Breitkreuz