auf ,5 runden

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
egon11
User
Beiträge: 354
Registriert: Mittwoch 14. Dezember 2016, 20:59

Hallo, ich mache mir gerade Gedanken wie man eine Zahl auf ,5 runden kann. also runden in fünfer Schritten.

Beispiel:
1,8 - 2,2 entspricht 2,0
2,3 - 2,7 entspricht 2,5
2,8 - 3,2 entspricht 3,0
und so weiter

Gibt es da schon eine "Vor-Funktion" oder kann man das selbst coden?
nezzcarth
User
Beiträge: 1638
Registriert: Samstag 16. April 2011, 12:47

Die eingebaute 'round'-Funktion rundet wissenschaftlich. Andere mehr oder weniger gängige Modi sind über das 'decimals'-Modul zugänglich: https://docs.python.org/3/library/decimal.html
Andere Modi musst du selbst implementieren.
Zuletzt geändert von nezzcarth am Sonntag 16. April 2023, 10:06, insgesamt 1-mal geändert.
Sirius3
User
Beiträge: 17759
Registriert: Sonntag 21. Oktober 2012, 17:20

Durch eine einfache mathematische Operation kann man das Runden auf Einhalb in ein Runden auf ganze Zahlen umwandeln. Die Operation macht man natürlich nach dem Runden wieder rückgängig.
egon11
User
Beiträge: 354
Registriert: Mittwoch 14. Dezember 2016, 20:59

Sirius3 hat geschrieben: Sonntag 16. April 2023, 09:58 Durch eine einfache mathematische Operation kann man das Runden auf Einhalb in ein Runden auf ganze Zahlen umwandeln. Die Operation macht man natürlich nach dem Runden wieder rückgängig.
Wie meinst du das?
Benutzeravatar
ThomasL
User
Beiträge: 1367
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

egon11 hat geschrieben: Sonntag 16. April 2023, 09:42 Beispiel:
1,8 - 2,2 entspricht 2,0
2,3 - 2,7 entspricht 2,5
2,8 - 3,2 entspricht 3,0
und so weiter
was entspricht denn dann 2,21 oder 2,29 etc? Wären gemäß deiner Beispiele nicht definiert. ;-)
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Benutzeravatar
sparrow
User
Beiträge: 4198
Registriert: Freitag 17. April 2009, 10:28

egon11 hat geschrieben: Montag 17. April 2023, 06:09 Wie meinst du das?
Du willst auf 0.5 statt auf 1 runden.
0.5 ist 1/2.
Also sollte es reichen deinen Asugangsweg mit 2 zu multiplizieren, dann herkömmlich zu runden und das Ergebnis wieder zu dividieren.

Dann würde auch von ThomasL benannte Problem nicht auftreten.
2.21 sollte dann 2.0 ergeben, 2.29 2.5.
egon11
User
Beiträge: 354
Registriert: Mittwoch 14. Dezember 2016, 20:59

Das runden sollte wie gesagt immer in 0,5 er schritten erfolgen.
1,2 (oder 1,29) soll auf 1,0. 1,31 z.B. auf 1,5 gerundet werden.
1,79 soll auf 1,5 und 1,8 auf 2 gerundet werden.

Allerdings kommen die Ergebnisse auf eine stelle nach Komma an.
Benutzeravatar
sparrow
User
Beiträge: 4198
Registriert: Freitag 17. April 2009, 10:28

Das wäre aber ein eher ungewöhnliches Verhalten. Kann man machen, klingt aber falsch. 1,29 ist näher an 1,5 statt an 1,0.
Aber wenn du eh nur eine Nachkommastelle hast, kannst du ja die von mir genannte Lösung nehmen.
egon11
User
Beiträge: 354
Registriert: Mittwoch 14. Dezember 2016, 20:59

sparrow hat geschrieben: Montag 17. April 2023, 07:39 Das wäre aber ein eher ungewöhnliches Verhalten. Kann man machen, klingt aber falsch. 1,29 ist näher an 1,5 statt an 1,0.
Aber wenn du eh nur eine Nachkommastelle hast, kannst du ja die von mir genannte Lösung nehmen.
Genau das funktioniert, danke.
Antworten