![]() |
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:
spinn' ich jetzt oder rundet mir die RoundTo-Funktion nicht richtig?
ShowMessage(FloatToStr(RoundTo(1.23545, -4))); //1,2354
ShowMessage(FloatToStr(RoundTo(1.23555, -4))); //1,2355 ShowMessage(FloatToStr(RoundTo(1.23556, -4))); //1,2356 simpleroundto() hatte übrigens das selbe ergebnis... sollte ich eine andere funktion zum runden verwenden? danke! -dominik |
Re: Runden mit RoundTo geht irgendwie nicht^^
Hallo,
absolut korrekte Ergebnisse(wenn es die sind hinter //...)!..Was soll daran falsch sein? |
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.
|
Re: Runden mit RoundTo geht irgendwie nicht^^
Zitat:
|
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:
sollte auf 4 stellen kaufmännisch runden.
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; oder hat vielleicht jemand ne elegantere lösung? =) |
Re: Runden mit RoundTo geht irgendwie nicht^^
Hallo,
wenn du schon das passende Stichwort hast, wieso suchst du dann nicht auch danach? ;) ![]() Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 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