AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rundungsproblem

Ein Thema von neolithos · begonnen am 14. Mai 2004 · letzter Beitrag vom 14. Mai 2004
Antwort Antwort
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#1

Rundungsproblem

  Alt 14. Mai 2004, 14:46
Wenn ich die Zahl 0.725 mittels Math.Round(, 2) runde
kommt 0.72 und
nicht wie ich erwartet hatte 0.73 heraus.

Wie kann man das Ändern?
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#2

Re: Rundungsproblem

  Alt 14. Mai 2004, 15:16
hallo neo,

ich glaub das ist mathematisch richtig es wir immer zur geraden zahl gerundet.

bei 0.725 zur 0.72
bei 0.735 zur 0.74

raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
iaby

Registriert seit: 30. Nov 2002
Ort: BW
258 Beiträge
 
#3

Re: Rundungsproblem

  Alt 14. Mai 2004, 15:22
das ist mathematisch falsch gerundet!

was kommt den bei 0,726 raus?
rechne doch: math.round(zahl + 0,005, 2) gruss,
iaby
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Rundungsproblem

  Alt 14. Mai 2004, 15:22
Zitat von kiar:
ich glaub das ist mathematisch richtig es wir immer zur geraden zahl gerundet.

bei 0.725 zur 0.72
bei 0.735 zur 0.74
Echt? Ich dachte, ab 5 wird aufgerundet.

Suche mal hier nach Hier im Forum suchenkaufmännisch runden

Edit: Mist, ist ja die .NET Sparte, sorry, dann hab ich keine Ahnung.
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Rundungsproblem

  Alt 14. Mai 2004, 15:24
Eigentlich ab x.5 zu x+1 und unter x.5 zu x.

Aber floats könnten da etwas "garstig" sein, so dass 0.725 eigentlich als 0.7249999999... dargestellt werden muss, und schon isses passiert. Lösen kann man das nur, wenn man eine gewisse Ungenauigkeit hin nimmt, indem man explizit sagt x.y5 := x.y5000001 oder so.
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#6

Re: Rundungsproblem

  Alt 14. Mai 2004, 17:07
Übrigens, wie man rundet war mir klar!

Aber ich dachte man kann das Runden in .NET ähnlich steuern wie in Delphi32.

Ich habe mir jetzt selbst eine kleine Runden Funktion geschrieben.
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Rundungsproblem

  Alt 14. Mai 2004, 20:54
Zitat von neolithos:
Ich habe mir jetzt selbst eine kleine Runden Funktion geschrieben.
Es wäre für die anderen, die es inetessiert, nett von dir, wenn du diesen hier veröffentlichen könntest.

Edit: Sorry, ist zwar kein deutsch, aber ich hoffe, du weißt, was gemeint ist.
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#8

Re: Rundungsproblem

  Alt 14. Mai 2004, 21:35
Moin moin zusammen,

ja das gute alte Rundungsproblem, gab´s schon auf dem C64 mit CP/M-Modul und Turbo-Pascal.

Mit den Float oder Extendet als Datentyü gibt es da schon ab und an mal kleine Überaschungen.
Theoretisch könnte man da jetzt mit eigens gestrickter BCD-Arithmetik herangehen, aber das ist
zum Glück inzwischen nicht mehr nötig...

Nimm mal als Datentyü "Currrency", da sollte es kaufmänsich korrekt runden (ab 0.5 zu 1.0).

Viele Grüße // Martin
Martin Schaefer
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#9

Re: Rundungsproblem

  Alt 14. Mai 2004, 21:48
rauskommen sollte .3
Nico Müller
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#10

Re: Rundungsproblem

  Alt 14. Mai 2004, 22:22
machs so:

x:=rnd(x*100) / 100 is zwar blöd, sollte aber funzen

das ganze könnte man s machen, das er statt 100
10 hoch anzahl derNachkommastellen -1
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:24 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