Round() - kann das jemand so brauchen wie es ist?
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Round() - kann das jemand so brauchen wie es ist?
die funktion Round(Zahl.f,Modus)
finde ich persönlich völlig nutzlos.
weil ich angeben muss, ob sie auf oder abgerundet werden soll.
wenn ich 11.8 abrunden will, nehme ich INT()
und wiese sollte ich 3.2 auf 4 aufrunden?
ich vermisse allerdings eine funktion, mit der ich ganz normal runden kann,
also abhängig vom wert auf oder ab.
aus 13.2 wird 13 (integer, nicht float) aus 21.7 wird 22
wie seht ihr das?
eine funktion Round(Zahl.f) die ab kommafünf aufrundet und sonst ab, fände ich nützlicher.
finde ich persönlich völlig nutzlos.
weil ich angeben muss, ob sie auf oder abgerundet werden soll.
wenn ich 11.8 abrunden will, nehme ich INT()
und wiese sollte ich 3.2 auf 4 aufrunden?
ich vermisse allerdings eine funktion, mit der ich ganz normal runden kann,
also abhängig vom wert auf oder ab.
aus 13.2 wird 13 (integer, nicht float) aus 21.7 wird 22
wie seht ihr das?
eine funktion Round(Zahl.f) die ab kommafünf aufrundet und sonst ab, fände ich nützlicher.
Re: Round() - kann das jemand so brauchen wie es ist?
Es gibt nun mal 3 Möglichkeiten zu runden, und außerdem noch die Anzahl Kommastellen.Kaeru Gaman hat geschrieben:eine funktion Round(Zahl.f) die ab kommafünf aufrundet und sonst ab, fände ich nützlicher.
z.B. kaufmännisch auf Null Stellen
runde 10.6 ergibt 11
runde 10.4 ergibt 10
z.B. kaufmännisch auf 2 Stellen
runde 10.126 ergibt 10.13
runde 10.124 ergibt 10.12
Also die Rundungsfunktion müsste eigentlich so sein:
Round(Wert,Kommastellen,Modus)
Modus 0:ab, 5:kaufmännisch, 9:auf
Kaufmännisch auf Null Stellen geht derweil mit Round(Wert+0.5,0)
horst
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Code: Alles auswählen
a.f = -1.3
b.f = -1.8
Debug Round(a+0.5,0)
Debug Round(b+0.5,0)kann man das nicht mit in die beschreibung schreiben?
wenn ich jetzt nicht hätte gegenargumentieren wollen, dann hätte ich es niemals überprüft.
unter diesem gesichtspunkt kann ich es vielleicht auch mal brauchen...
wäre halt nur angenehm gewesen, wenn ich das irgentwie erfahren hätte,
bevor ich das in meinen projekten mit INT() und nem IF für negative
gelöst habe...
aber ich würde trotzdem gern ne round-funktion haben,
die ohne weitere argumente kaufmännisch ohne nachkomma rundet...
die idee von horst ist auch nicht übel. allerdings würde ich das als zusätzliche lösung vorziehen, nicht als einzige.
PS: und ja, ausgerechtet dieses ist mein 500ster Beitrag
wenigstens ne kleine rakete:
*
|
|
|
-
DarkDragon
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Kannste dir das nicht selber denken wie das geht?
Und was ist daran so schwer?
Code: Alles auswählen
Procedure.f Round2(Val.f)
Int = Int(Val)
If Val-Int < 0.5
ProcedureReturn Round(Val, 0)
Else
ProcedureReturn Round(Val, 1)
EndIf
EndProcedure
Float.f = 5.5
Debug Float
Debug Round2(Float.f)
Debug "---"
Float.f = 5.4
Debug Float
Debug Round2(Float.f)Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Das mit der Hilfe würde ich mir aber nochmal überlegen, Andre. Das
einfach so in die Hilfe zu Round einzubauen wäre irgendwie etwas
merkwürdig, professionell sieht das nicht aus.
Im grunde ist das kein hidden Feature, diese Problemlösung zu finden
nennt man allgemein Programmieren.
einfach so in die Hilfe zu Round einzubauen wäre irgendwie etwas
merkwürdig, professionell sieht das nicht aus.
Im grunde ist das kein hidden Feature, diese Problemlösung zu finden
nennt man allgemein Programmieren.
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
@André
danke, ich fänds halt praktisch, wenn im manual was stehen würde.
@Lars
> Im grunde ist das kein hidden Feature
IMHO ist es nicht selbstverständlich, dass 'abrunden' im negativen bereich
absolut zu verstehen ist.
es soll ja auch garnicht in der anleitung stehen, wie man damit kaufmännisch rundet.
nur z.b. so
@DarkDragon
Ägypten????
hast du überhaupt ansatzweise verstanden, worauf ich hinaus will?
dank Horsts antwort weiss ich jetzt:
was natürlich heisst, dass man garkeine Proc mehr braucht, nur ne Long-Zielvariable.
danke, ich fänds halt praktisch, wenn im manual was stehen würde.
@Lars
> Im grunde ist das kein hidden Feature
IMHO ist es nicht selbstverständlich, dass 'abrunden' im negativen bereich
absolut zu verstehen ist.
es soll ja auch garnicht in der anleitung stehen, wie man damit kaufmännisch rundet.
nur z.b. so
Hinweis: Die Rundung ist absolut.
Beispiel:
Round(-2.5, 0) = -3
Round(-2.5, 1) = -2
@DarkDragon
Ägypten????
hast du überhaupt ansatzweise verstanden, worauf ich hinaus will?
Code: Alles auswählen
Procedure.l RoundInt(var.f)
If var < 0
ProcedureReturn Int(var-0.5)
Else
ProcedureReturn Int(var+0.5)
EndIf
EndProcedureCode: Alles auswählen
Procedure.l RoundInt(var.f)
ProcedureReturn Round(var+0.5,0)
EndProcedure