AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Anzahl der Vorkommastellen bestimmen ???
Thema durchsuchen
Ansicht
Themen-Optionen

Anzahl der Vorkommastellen bestimmen ???

Ein Thema von Cliff · begonnen am 23. Sep 2004 · letzter Beitrag vom 4. Okt 2020
Antwort Antwort
Benmik

Registriert seit: 11. Apr 2009
570 Beiträge
 
Delphi 12 Athens
 
#1

AW: Re: Anzahl der Vorkommastellen bestimmen ???

  Alt 3. Okt 2020, 12:36
Trunc(Log10(n) + 1). Achte auf negative Werte.
[edit]Vieeel zu langsam...[/edit]
Aus gegebenem Anlass habe ich dieses Thema exhumiert. Vielleicht gibt es ja inzwischen bessere Ansätze, aber "Viel zu langsam" kann ich nicht nachvollziehen:
Delphi-Quellcode:
procedure TestCode;
var Dbl1,Dbl2:Double;
    i,Bis:integer;
    StopWatch:TStopWatch;
begin
  Dbl2 := 654321.123456;
  StopWatch := TStopWatch.StartNew;
  Bis := Min(100000000,High(integer));
  For i := 0 to Bis do begin
    Dbl1 := Floor(1 + Log10(Abs(Dbl2)));
// Dbl1 := Pos(',',FloatToStr(Dbl2)) + 1;
  end;
  StopWatch.Stop;
  ShowMessage(Format('%d %s%.0n %s%0.7n7 %s', [StopWatch.ElapsedMilliseconds,'msec (',Bis/1,'Dateien)' + NZ,StopWatch.ElapsedMilliseconds/Bis,'msec je Durchlauf']));
  Application.Terminate;
end;
100 Millionen Durchläufe dauern auf meinem Rechner ca. 1,7 Sekunden, das sind etwa 17,3 Nanosekunden je Berechnung. Ohne das Abs ist es noch eine Nanosekunde weniger. Die Stringlösung dauert etwa 15 Mal länger.
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi
Online

Registriert seit: 17. Jul 2005
901 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Anzahl der Vorkommastellen bestimmen ???

  Alt 4. Okt 2020, 14:13
Ich denke, dass das Edit "Viel zu langsam" vor 16 Jahren so gemeint war, das ganze zwei Minuten vorher die Antwort mit dem Logarithmus auch schon gegeben wurde, was aber erst nach dem Absenden der Antwort bemerkt wurde.
Being smart will count for nothing if you don't make the world better. You have to use your smarts to count for something, to serve life, not death.
  Mit Zitat antworten Zitat
Benmik

Registriert seit: 11. Apr 2009
570 Beiträge
 
Delphi 12 Athens
 
#3

AW: Anzahl der Vorkommastellen bestimmen ???

  Alt 4. Okt 2020, 15:09
Du bist Bestatter oder Archäologe, jedenfalls kennst du dich mit den prähistorischen Gepflogenheiten offenbar besser aus!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:47 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