AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

roundto rundet nicht (richtig)

Ein Thema von Bastler · begonnen am 27. Jul 2007 · letzter Beitrag vom 27. Jul 2007
Antwort Antwort
Bastler

Registriert seit: 15. Aug 2006
153 Beiträge
 
Delphi 7 Personal
 
#1

roundto rundet nicht (richtig)

  Alt 27. Jul 2007, 19:19
N'abend;

Ich habe in meinem Programm folgede Zeile

Delphi-Quellcode:
var ueberlebt:single;
...
ueberlebt:=roundto(secondspan(start,now),-2);
"Uberlebt" wird später durch floattostr in einen String umgewandelt, dieser enthält aber dann 12 od. mehr Nachkommastellen (hab (noch) nicht gezählt). Das verwirrendste dadran ist, das diese Zeile lange Zeit so wie sie hier steht funktioniert hat...

Wenn ich statt auf den Exponenten -2 auf 0 runde klappts wieder, auch -1 aber auch nicht...

Hat jemand ne erklärung oder einen Tipp für mich ?

(Hab auch schon probiert durch SetRoundMode den Rundungsmechanismus umzustellen, ändert aber leider nichts...)
Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber beim Universum bin ich mir noch nicht ganz sicher
(A. Einstein)
  Mit Zitat antworten Zitat
Benutzerbild von dajuhsa
dajuhsa

Registriert seit: 20. Apr 2007
397 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: roundto rundet nicht (richtig)

  Alt 27. Jul 2007, 20:05
versuchst du damit die kommastellen um 2 zu senken? der parameter gibt an, wie viele stellen übrig bleiben sollen!
12 stellen? single hat doch nur 8 dachte ich
das Essen ist wie das Internet - Downstream ist immer angenehmer als Upstream
-
Warum missbraucht die ganze Programmierwelt Images als Paintboxen
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: roundto rundet nicht (richtig)

  Alt 27. Jul 2007, 20:19
Floats können nicht jede Dezimalzahl genau darstellen. Daher hat man bei einigen Zahlen den Effekt, das eine auf 2 Stellen gerundete Zahl in der Darstellung z.B. 1.230000000001 ist. Das liegt in der Natur der floating point Darstellung.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Bastler

Registriert seit: 15. Aug 2006
153 Beiträge
 
Delphi 7 Personal
 
#4

Re: roundto rundet nicht (richtig)

  Alt 27. Jul 2007, 20:53
@dajuhsa: Ich weiß, so meinte ich es aucu, ich will auf 2 Nachkommastellen genau runden, sry, falls es falsch rüberkam

@alzaimar: Danke, ich habe jetz eine Variante gefunden, die vllt. nicht perfekt, aber wenigstesn funktionsfähig ist.

Delphi-Quellcode:
var a:integer;
    ueberlebt:single;
...
  
  a:=Millisecondsbetween(start,now);
  ueberlebt:=a*0.001;
  Label1.Caption:=floattostr(roundto(ueberlebt,-2));
klappt, warum auch immer, besser...

//EDIT: Code ergänzt
Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber beim Universum bin ich mir noch nicht ganz sicher
(A. Einstein)
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#5

Re: roundto rundet nicht (richtig)

  Alt 27. Jul 2007, 21:53
Schon mal
Label1.caption := floattostrF(ueberlebt,fffixed,7,2); ausprobiert ?
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: roundto rundet nicht (richtig)

  Alt 27. Jul 2007, 22:05
Label1.caption:=format('%.2f', [ueberlebt]);
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  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 04:41 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