Thema: Delphi zehnerpotenzen

Einzelnen Beitrag anzeigen

Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#1

zehnerpotenzen

  Alt 2. Apr 2006, 15:28
ich hab mir eine physik unit geschrieben die eben auch in 10er potenzen umrechnen soll

ich hab mal die negativen 10er potenzen zeurst gemacht





Delphi-Quellcode:
function TPhysic.Potenz10(z: real; nr : Integer): String;
var help, hs : String;
    i,e,s,stellen : Integer;
    b : boolean;
begin
{ aufbau zB  0.000021 ergebnis :  2.1*10^-5
  nr = genauigkeit}

  help := floatToStr(z);
  s := 3;
  if nr > Length(help)-1 then nr := nr - Length(help)-1;
  hs := '';
  stellen := 0;
  b := false;
  if (help[1] = '0') and (help[2] = ',') then
  begin
    for i:= 3 to length(help)-1 do
    begin s := s + 1;
        if b = false then
      if help[i] <> '0then
      begin
        b := true;
        hs := help[i] + ',';
        for e := s to length(help)-1 do
          hs := hs + help[e];
      end
      else
          inc(stellen);
    delete(hs,2+nr,length(hs)-(2+nr));
    result := hs + '*10^-' + IntToStr(Stellen+1)
    end;
  end
  else
  begin

  end;
end;
nr stellt eben die genauigkeit ein und genau da ist mein problem

aufruf :

  Edit1.Text := p.Potenz10(StrToFloat(Edit1.text),2);
lösungen von zwei eingaben :

0,05634
5,63*10^-2 <-- das stimmt

0,000345
3,4*10^-4 <-- das stimmt nicht


jemand eine ahnung wos happert(ist unsauber geschrieben bitte verzeiht)


grüße Nico
Nico Müller
  Mit Zitat antworten Zitat