Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wie wandle ich Double nach String um? (https://www.delphipraxis.net/121532-wie-wandle-ich-double-nach-string-um.html)

AlexII 29. Sep 2008 22:53


Wie wandle ich Double nach String um?
 
Delphi-Quellcode:
IntToStr
und
Delphi-Quellcode:
FloatToStr
ist klar aber wie wandle ich Double um? :gruebel:

mirage228 29. Sep 2008 22:56

Re: Wie wandle ich Double nach String um?
 
FloatToStr passt ;-)
Edit: Bei Bedarf Delphi-Referenz durchsuchenFloatToStrF...

BUG 29. Sep 2008 22:59

Re: Wie wandle ich Double nach String um?
 
Delphi-Quellcode:
var a: double;
begin
     a := pi;
     caption := FloatToStr(a);
end;
Double gehört zu den Gleitkommazahlen (floats) :warn: :mrgreen:

[EDIT]Nur zu langsam, weil ich's noch getestet habe ... spät abends lieber nochmal sichergehen :stupid: [/EDIT]

MfG,
Bug

AlexII 29. Sep 2008 22:59

Re: Wie wandle ich Double nach String um?
 
Also hab folgenden Code

Delphi-Quellcode:
function RundeAufStelle(zahl: double; stellen: integer): double;
var multi: double;
begin
  multi:=IntPower(10, stellen);
  zahl:=round(zahl*multi);
  result:=zahl/multi;
end;

procedure TForm1.Note;
var note: Real;
begin
if (FiCountCorrect=0) and (jkeins=1) and (jkzwei=1) then
begin
note:=7;
end else if (FiCountCorrect=0) and (jkeins=1) then
         begin
         note:=65/10;
         end else if (FiCountCorrect=0) and (jkzwei=1) then
                  begin
                  note:=65/10;
                  end else if (FiCountCorrect=0) then
                           begin
                           note:=0;
                           end else if (jkeins=1) then
                                    begin
                                    note:=RundeAufStelle(note+1/2, 1);
                                    end else if (jkzwei=1) then
                                             begin
                                             note:=RundeAufStelle(note+1/2, 1);
                                             end else note:=RundeAufStelle(note-5/15, 1);
Label7.Caption:=FloatToStr(note);
end;
Hier stimmt aber mit den DatenTypen irgendwas nicht :gruebel: stehe auf dem Schlauch und weiß nicht. Wenn ich die Variable note auf Double stelle ändert sich nix.

Bekomme zu dem noch diese Warnung: "[Warnung] MAIN.pas(134): Variable 'note' ist möglicherweise nicht initialisiert worden" :gruebel: Hatte eigentlich noch nie Probleme mit Variablen.

BUG 29. Sep 2008 23:26

Re: Wie wandle ich Double nach String um?
 
Delphi-Quellcode:
procedure TForm1.Note;
var note: Real;
begin
if (FiCountCorrect=0) and (jkeins=1) and (jkzwei=1) then
begin
note:=7;
end else if (FiCountCorrect=0) and (jkeins=1) then
         begin
         note:=65/10;
         end else if (FiCountCorrect=0) and (jkzwei=1) then
                  begin
                  note:=65/10;
                  end else if (FiCountCorrect=0) then
                           begin
                           note:=0;
                           end else if (jkeins=1) then
                                    begin
                                    note:=RundeAufStelle({-->}note{<--}+1/2, 1); // note ist undefiniert
                                    end else if (jkzwei=1) then
                                             begin
                                             note:=RundeAufStelle({-->}note{<--}+1/2, 1); // note ist undefiniert
                                             end else note:=RundeAufStelle({-->}note{<--}-5/15, 1); // note ist undefiniert
Label7.Caption:=FloatToStr(note);
end;
Zitat:

Zitat von AlexII
Bekomme zu dem noch diese Warnung: "[Warnung] MAIN.pas(134): Variable 'note' ist möglicherweise nicht initialisiert worden" :gruebel: Hatte eigentlich noch nie Probleme mit Variablen.

Ich hab mal die Stellen gekennzeichnet, wo note evtl. undefiniert ist, da die Anweisung, die auf note zugreift, nur im else-Teil einer Bedingungen steht und die Zuweisung eines Wertes aber nur ausgeführt wird, wenn die Bedingung erfüllt ist.

Für die Logik sollte es keinen Unterschied machen, ob du real oder double benutzt, da ändert sich imho nur die Genauigkeit.

MfG,
Bug

AlexII 29. Sep 2008 23:34

Re: Wie wandle ich Double nach String um?
 
Und wie kann man das lösen?

AlexII 29. Sep 2008 23:44

Re: Wie wandle ich Double nach String um?
 
Ich hab's :hello: Danke euch! :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz