Forum: Sonstige Fragen zu Delphi
Delphi
by Basilikum,
2. Apr 2006
kleiner Nachtrag: Log von 0 ist nicht definiert - daher sollte bei 0 kein Logarithmus berechnet werden:Function EngineerFormat(Const F : Double;Const Digits : Byte) : String;
Var
P : Integer;
Begin
If (Abs(F) > 0.0) Then P:=Trunc(Log10(F) + 500) - 500 Else P:=0;
Result:=Format('%s*10^%d',);
end;
Forum: Sonstige Fragen zu Delphi
Delphi
by Basilikum,
2. Apr 2006
Log ist die mathematische Umkehrfunktion zur Potenz...
Log10 (also zur Basis 10) ist die inverse Operation zur Potenz von 10
LogN( N^P ) = P
Log10( 10^P ) = P
10^3 = 1000
Log10(1000) = 3
Forum: Sonstige Fragen zu Delphi
Delphi
by Basilikum,
2. Apr 2006
huch, da stehen mir ja sämtliche Haare rechtwinklig vom Kopf ab, bei diesem Umweg über Strings...
ich würde etwas in diese Richtung vorschlagen:Function EngineerFormat(Const F : Double;Const Digits : Byte) : String;
Var
P : Integer;
Begin
If (Abs(F) > 0.0) Then P:=Trunc(Log10(F) + 500) - 500 Else P:=0;
Result:=Format('%s*10^%d',);
end;