Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Runden mit RoundTo geht irgendwie nicht^^ (https://www.delphipraxis.net/112801-runden-mit-roundto-geht-irgendwie-nicht%5E%5E.html)

edosoft 27. Apr 2008 14:06


Runden mit RoundTo geht irgendwie nicht^^
 
Hallo,

ich will extended-werte auf 4 dezimalstellen genau runden. dazu verwende ich bisher die funktion "RoundTo". aber irgendie funktioniert das nicht...

Delphi-Quellcode:
ShowMessage(FloatToStr(RoundTo(1.23545, -4))); //1,2354
ShowMessage(FloatToStr(RoundTo(1.23555, -4))); //1,2355
ShowMessage(FloatToStr(RoundTo(1.23556, -4))); //1,2356
spinn' ich jetzt oder rundet mir die RoundTo-Funktion nicht richtig?
simpleroundto() hatte übrigens das selbe ergebnis... sollte ich eine andere funktion zum runden verwenden?

danke!

-dominik

Der.Kaktus 27. Apr 2008 14:08

Re: Runden mit RoundTo geht irgendwie nicht^^
 
Hallo,
absolut korrekte Ergebnisse(wenn es die sind hinter //...)!..Was soll daran falsch sein?

edosoft 27. Apr 2008 14:17

Re: Runden mit RoundTo geht irgendwie nicht^^
 
hab mich inzwischen etwas schlauer gemacht... ich will kaufmännisch runden, d.h. 1,5 soll auf 2 gerundet werden, 2,5 auf 3 usw.

Der.Kaktus 27. Apr 2008 14:21

Re: Runden mit RoundTo geht irgendwie nicht^^
 
Zitat:

Zitat von edosoft
hab mich inzwischen etwas schlauer gemacht... ich will kaufmännisch runden, d.h. 1,5 soll auf 2 gerundet werden, 2,5 auf 3 usw.

dann nimm doch einfach den Formatbefehl.

edosoft 27. Apr 2008 14:31

Re: Runden mit RoundTo geht irgendwie nicht^^
 
rundet der kaufmännisch?
abgesehen davon macht der mir ja einen string draus.. ich will aber das ergebnis im extended-format behalten. (das mit showmessage war ja nur zum testen)

ich habs jetzt so gemacht:
Delphi-Quellcode:
function ValidatePrice(aVal: Extended): Extended;
var
  e: Extended;
begin
  e := IntPower(10, 4);
  Result := aVal * e;
  Result := (Trunc(Result) + Trunc(Frac(Result) * 2)) / e;
end;
sollte auf 4 stellen kaufmännisch runden.
oder hat vielleicht jemand ne elegantere lösung? =)

Matze 27. Apr 2008 14:43

Re: Runden mit RoundTo geht irgendwie nicht^^
 
Hallo,

wenn du schon das passende Stichwort hast, wieso suchst du dann nicht auch danach? ;)

Code-Library: Kaufmännisch Runden

Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 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