![]() |
AW: Runden ohne nachfolgende Nullen
Ja Dankeschön an Alle.
Trim ist eine Alternative aber das löscht auch nur die Zeichen weg. Die wollte ich gar nicht erst erzeugen um dann zu löschen. Darum gings mir ja, die Nullen gar nicht erst erzeugen. Formatierung mit Runden geht in die Richtung was ich Suche. Muss ich checken, denke aber das wird ok sein. Rollo |
AW: Runden ohne nachfolgende Nullen
Zitat:
Ansonsten sei auch noch der Hinweis auf die Funktion von shmia erlaubt --> ![]() |
AW: Runden ohne nachfolgende Nullen
@Andidreas
Ähmm......also..entweder stimmt Wikipedia nicht oder Emba hat da nen Bug :) RoundTo(2.3500,-1) ergibt 2.3 lt. Wiki sollte das aber 2.4 ergeben :) Deshalb hab ich mir mal folgende Rundung gebaut:
Delphi-Quellcode:
Damit funzt es so wie es im Wiki beschrieben ist :)
TYPE
TRoundAlg = (raKfm,raSience); function Rounder(alg:TRoundAlg;value:extended;decimalplaces:integer):extended; implementation function Rounder(alg:TRoundAlg;value:extended;decimalplaces:integer):extended; var pre,nex,tmp : extended; pt : extended; hlp : integer; begin pt := power(10.0,decimalplaces); pre := int(value*pt); nex := frac(value*pt); case alg of raKfm: begin if (nex >= 0.5) then pre := pre+1.0; result := pre/pt; end; raSience: begin if (nex > 0.50) then pre := pre+1.0; if (nex = 0.5) then begin tmp := Frac(pre/10)*10; hlp := round(tmp); if (hlp in [1,3,5,7,9]) then pre := pre+1.0; end; result := pre/pt; end; end; end; |
AW: Runden ohne nachfolgende Nullen
Zitat:
In Delphi 10.1 Update 2 bekomme ich bei
Delphi-Quellcode:
wie erwartet 2.4 als Ergebnis ;-)
RoundTo(2.3500, -1)
|
AW: Runden ohne nachfolgende Nullen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:52 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 by Thomas Breitkreuz