Thema: Delphi Real zahl und "mod"

Einzelnen Beitrag anzeigen

Mick

Registriert seit: 31. Dez 2002
47 Beiträge
 
Delphi 6 Personal
 
#1

Real zahl und "mod"

  Alt 6. Apr 2003, 17:23
hi,

ich will wissen wie oft verschiedene zahlen in eine real zahl passt.
ich habe das mit ... versucht zu lösen aber ich musste feststellen das ich bei zahlen wie zb.:11.12 oder 23.65 den rest 0.01 (9.9999999953E-03)
bekomme,er aber nicht " mit gerechnet" wird.
es soll mämlich rest null sein...

Delphi-Quellcode:
     writeln('geben Sie einen Betrag im folgendem format ein,');
     writeln('der gewechselt werden soll (Bsp. 23.65):');
     write('Ihr Betrag: '); {eingabe der real zahl}
     readln(eing);

     writeln('Sie erhalten von mir ...:');
     writeln;
     
          begin {feststellen wie oft die 2 in die eingabe passt!}
          if eing>=2 then
          begin
               h:=trunc(eing / 2);
               eing:=eing-(h * 2); {die zeile führt "MOD" aus}
               writeln(h,' mal 2',e);
          end;
          if eing>=1 then
          begin
               h:=trunc(eing / 1);
               eing:=eing-(h * 1);
               writeln(h,' mal 1',e);
          end;
          if eing>=0.50 then
          begin
               h:=trunc(eing / 0.50);
               eing:=eing-(h * 0.50);
               writeln(h,' mal 0.50',c);
          end;
          if eing>=0.20 then
          begin
               h:=trunc(eing / 0.20);
               eing:=eing-(h * 0.20);
               writeln(h,' mal 0.20',c);
          end;
          if eing>=0.10 then
          begin
               h:=trunc(eing / 0.10);
               eing:=eing-(h * 0.10);
               writeln(h,' mal 0.10',c);
          end;
{ ab hier gibt es Probleme, mit der rundung!!!}

          if eing>=0.05 then
          begin
               h:=trunc(eing / 0.05);
               eing:=eing-(h * 0.05);
               writeln(h,' mal 0.05',c);
          end;
          if eing>=0.02 then
          begin
               h:=trunc(eing / 0.02);
               eing:=eing-(h * 0.02);
               writeln(h,' mal 0.02',c);
          end;
          if eing>=0.01 then
          begin
               h:=trunc(eing / 0.01);
               eing:=eing-(h * 0.01);
               writeln(h,' mal 0.01',c);
          end;
          writeln((eing),' das ist das letzte was in der var "eing" steht...???');
          writeln((eing):6:2);
           {das ist was als letztes in "eing" drinsteht! aber warum wird es nicht mit gerechnet!??}
     end
ich komm leider nicht drauf wie ich das lösen kann.


Mick

[edit=Daniel B]Delphi-Tags gesetzt. MfG Daniel B.[/edit]
  Mit Zitat antworten Zitat