![]() |
4.00000 kein gültiger Fließkommawert ?
Ich habe eine function die Wurzeln berechnen soll :
Code:
und ich habe einen Button und ein Edit Feld :
function Wurzel(Zahl4:Real) : Extended;
var Temp : String; begin Str(Sqrt(Zahl4):5:4, Temp); Zahl4 := Zahl4 + StrToFloat(Temp); Wurzel := Zahl4; end;
Code:
Das Programm startet auch aber wenn ich dann in das Edit-Feld z.B 16 eingebe und dann auf den Wurzel Button klicke kommt die Fehlermeldung "4.00000 ist keine gültige Fließkommazahl" !
procedure TForm1.Button4Click(Sender: TObject);
var ZahlW : Extended; begin ZahlW := Wurzel(StrToFloat(Edit1.Text)); Edit1.Text := FloatToStr(ZahlW); end; Was mache ich da nur falsch ? |
Re: 4.00000 kein gültiger Fließkommawert ?
Ist auf deinem System Punkt oder Komma das Dezimaltrennzeichen?
|
Re: 4.00000 kein gültiger Fließkommawert ?
Ich glaube Punkt :gruebel: Wieso ? Ist das wichtig ?
|
Re: 4.00000 kein gültiger Fließkommawert ?
Zitat:
Also einfach dem Programm temporär einen anderen DecimalSeperator zuweisen. Alternativ kannst Du auch mal TFormatSettings ansehen.
Delphi-Quellcode:
function Wurzel(Zahl4:Real) : Extended;
var Temp : String; ch_tmp : Char; begin Str(Sqrt(Zahl4):5:4, Temp); ch_tmp := DecimalSeparator; DecimalSeparator := '.'; Zahl4 := Zahl4 + StrToFloat(Temp); DecimalSeparator := ch_tmp; Wurzel := Zahl4; end; |
Re: 4.00000 kein gültiger Fließkommawert ?
Ähm ... danke es funktioniert zwar aber ich bekomme wenn ich in das Edit-Feld 16 Eingebe 20 heraus !
Soweit ich weis ist aber die Wurzel aus 16 4 oder ? :gruebel: Wieso wird jetzt das Ergebnis so verfälscht ? Ok ich weis jetzt was Delphi macht er Addiert die Wurzel der Zahl zu der Zahl (Wurzel(16) + 16) = 20 Aber wieso ? OK ich habs :
Code:
procedure TForm1.Button4Click(Sender: TObject);
var ZahlW : Extended; Edit1Temp : String; begin Edit1Temp := Edit1.Text; ZahlW := Wurzel(StrToFloat(Edit1.Text)) - StrToFloat(Edit1Temp); Edit1.Text := FloatToStr(ZahlW); end; |
Re: 4.00000 kein gültiger Fließkommawert ?
Zitat:
Delphi-Quellcode:
Du addierst ja die Wurzel (in temp) zu deiner Zahl.
Zahl4 := Zahl4 + StrToFloat(Temp);
Richtig wäre also:
Delphi-Quellcode:
Aber warum überhaupt so kompiliert?
function Wurzel(Zahl4:Real) : Extended;
var Temp : String; ch_tmp : Char; begin Str(Sqrt(Zahl4):5:4, Temp); ch_tmp := DecimalSeparator; DecimalSeparator := '.'; result := StrToFloat(Temp); DecimalSeparator := ch_tmp; end;
Delphi-Quellcode:
function Wurzel(Zahl4:Real) : Extended;
begin result := Sqrt(Zahl4); end; |
Re: 4.00000 kein gültiger Fließkommawert ?
Zitat:
Danke nochmal ! :thuimb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:22 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