Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Taschenrechner 2.0 - Der Multi-Rechner (https://www.delphipraxis.net/153816-taschenrechner-2-0-der-multi-rechner.html)

Satty67 20. Aug 2010 10:04

AW: Taschenrechner 2.0 - Der Multi-Rechner
 
Die beiden Funktionen würden sich fast schon aufdrängen.

Alternativ evtl. mit Try Except arbeiten:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  x,y : double;
begin
  y := 0;
  try
    x := 1 / y;
    // ShowMessage wird nie ausgeführt,
    // da der Code davor eine Exception ausgelöst hat
    ShowMessage(FloatToStr(x));
  except
    on E:EZeroDivide do
      ShowMessage('Durch 0 darf nicht dividiert werden.');
  end;
end;
€: geht ja um Gleitkommazahlen, Code angepasst

LDProgrammierer 20. Aug 2010 11:06

AW: Taschenrechner 2.0 - Der Multi-Rechner
 
Nein ich verwende keine doubles sondern Real :
Delphi-Quellcode:
var a, b, c : Real;
dann geht es ganz normal weiter
Delphi-Quellcode:
a:= strtofloat(edit1.Text)
usw.

mkinzler 20. Aug 2010 11:13

AW: Taschenrechner 2.0 - Der Multi-Rechner
 
Hallo LDProgrammierer,

was spricht den gegen die Verwendung von Delpi-Tags?
Ich habe in diesem Thread hier deine Beiträge schon mehrmals in der Hoffnung korrigiert, dass du es merkst!

Ich bitte dich in zukünftigen Beiträgen, bitte die richtigen Tags zu verwenden.

Satty67 20. Aug 2010 11:50

AW: Taschenrechner 2.0 - Der Multi-Rechner
 
Zitat:

Zitat von LDProgrammierer (Beitrag 1043711)
Nein ich verwende keine doubles sondern Real

Sind ja beides Gleitkommazahlen, real ist nur der kleinere Bruder ;-)

Verwendung von Real macht aber imho seit den Pentium-Prozessoren mit integriertem Co-Prozessor keinen Sinn mehr. Man könnte also gleich Double mit höherer Genauigkeit nehmen. Meine selbst in der Delphi 5 Hilfe wird schon geschrieben, dass Real im Prinzip veraltet ist.

Nachdem ich einfach in die Hilfe geschaut hatte, hab' es wohl mit Real48 verwechselt.

Real in aktuellen Version ist identisch mit Double.

OrNEC 20. Aug 2010 12:07

AW: Taschenrechner 2.0 - Der Multi-Rechner
 
Zitat:

Zitat von Satty67 (Beitrag 1043739)
Meine selbst in der Delphi 5 Hilfe wird schon geschrieben, dass Real im Prinzip veraltet ist.

Und was heißt veraltet? Ist Real gebrechlich und das Gedächtnis lässt nach oder wie? :|

himitsu 20. Aug 2010 12:20

AW: Taschenrechner 2.0 - Der Multi-Rechner
 
Real Single ist nur schöne knuffige 4 Byte groß und wenn einem der etwas kleinere Wertebereich und die geringere Genauigkeit ausreicht, dann ist dieser doch erste Wahl?

Ich nehm auch nicht überall Int64 oder gar irgendwas BigInt-Artiges, wenn mit doch ein Integer oder Byteausreichen würde.


Float sollte von der Größe mit dem Integer übereinstimmen, also einer Registerbreite.

[edit]
ach mist, jetzt hab'sch Float mit Real verwechselt

gammatester 20. Aug 2010 12:52

AW: Taschenrechner 2.0 - Der Multi-Rechner
 
Zitat:

Zitat von himitsu (Beitrag 1043748)
Real ist nur schöne knuffige 4 Byte groß und wenn einem der etwas kleinere Wertebereich und die geringere Genauigkeit ausreicht, dann ist dieser doch erste Wahl?

Nein, das alte real war 48Bit = 6Byte groß (und wird wohl jetzt auf double umgelenkt)
Zitat:

Zitat von himitsu
Float sollte von der Größe mit dem Integer übereinstimmen, also einer Registerbreite.

Warum? Was haben die Floatingpoint-Register mit 80Bit mit den normalen CPU-Registern zu tun?

himitsu 20. Aug 2010 13:38

AW: Taschenrechner 2.0 - Der Multi-Rechner
 
Das hat eher was mit Speicher-/Recordausrichtungen zu tun.


OK, Real = Double (nicht Siglge), aber egal ... Real ist auf jedenfalls kein "alter" Typ ... es ist nur eine "Umleitung", welche aktuell auf Double zeigt.

Real48 (in aktuellen Delphis) und das 6 Byte "Real" in alten Delphis ist wirklich obsolete.

LDProgrammierer 21. Aug 2010 10:54

AW: Taschenrechner 2.0 - Der Multi-Rechner
 
OK endlich habe ich es geschafft ich habe aber den folgenden Code verwendet:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var a, b, c : Real;
begin
a:= strtofloat(edit1.Text);
b:= strtofloat(edit2.Text);
c:= a/b;
if b = 0 then ShowMessage('Durch NULL darf nicht dividiert werden!') else
begin
 c:= a/b;
Edit3.Text := floattostr(c);
end;

end;

end.

himitsu 21. Aug 2010 10:56

AW: Taschenrechner 2.0 - Der Multi-Rechner
 
Das
Delphi-Quellcode:
c:= a/b;
vor der IF-Abfrage ist wohl noch zuviel.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:50 Uhr.
Seite 4 von 5   « Erste     234 5      

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