Domino 9 und frühere Versionen > ND6: Entwicklung

Datum und Zeitbrechnung

<< < (6/9) > >>

Marinero Atlántico:
imho besteht der Unterschied darin, dass Currency nach jeder Operation automatisch auf 4 Stellen hinter dem Komma rundet und das macht Float nicht.
Das ist aus meiner Sicht der Unterschied. Nicht ob das jetzt intern als Float repräsentiert wird oder nicht.
Bei currency gibt es implizit immer einen Round(floatErgebnis, 4-Stellen).
Und das macht einen Unterschied.


Marinero Atlántico:
Ich glaub auch ehrlich gesagt nicht, dass BigDecimal intern einen double oder float implementiert.
http://www.galileocomputing.de/openbook/javainsel/java-05.htm#t312

Semeaphoros:

--- Zitat von: Marinero Atlántico am 12.06.05 - 22:22:05 ---imho besteht der Unterschied darin, dass Currency nach jeder Operation automatisch auf 4 Stellen hinter dem Komma rundet und das macht Float nicht.

--- Ende Zitat ---

Mein lieber Freund und Kupferstecher, wenn das der Fall wäre, wäre das die absolute Katastrophe und Iris wäre seinerzeit mit Protesten überhäuft worden. Eine solche Implementation ist nahe daran als Zufallsgenerator gebraucht zu werden.

koehlerbv:

--- Zitat von: Marinero Atlántico am 12.06.05 - 21:08:53 ---Das mit Bernhards Rundungsfehler ...

--- Ende Zitat ---

Axel, ich habe keine Probleme mit Rundungsfehlern - ich habe nur versucht, andere davor zu bewahren  ;)


--- Zitat von: Marinero Atlántico am 12.06.05 - 21:08:53 ---... Rundungsfehler hat ja nicht unbedingt etwas mit Zeit und Datumsberechnung zu tun, sondern mit seiner speziellen Implementierung einer Lösung und der sich daraus ergebenen Problematiken.

--- Ende Zitat ---

Das sehe ich ganz genauso. Die Rechengenauigkeit eines binären Systems ist immer endlich, daher habe ich mir angewöhnt, auf jeder Berechnungsstufe sicherzustellen, dass die gewünschte Dimension auch zur Verfügung steht und sich eben keine "Unschärfe" einschleichen kann. Und das betrifft selbstverständlich nicht nur Operationen mit Datumsseriennummern - das kann hier ja nur als Beispiel dienen.

Bernhard

Marinero Atlántico:
faq comp.lang.java argumentiert auch in meine Richtung:

--- Zitat ---In einem Computer sind natürlich nur endlich viele Gleitkommazahlen
darstellbar. In der Mathematik gibt es aber unendlich viele. Will man also
das mathematische Rechnen auf einem Computer 'simulieren', muss man
ständig versuchen, trotz dieses Umstandes möglichst nahe an den 'wahren'
Werten zu bleiben. Dieses Auswählen eines geeigneten Stellvertreters unter
den im Rechner darstellbaren Zahlen ist es, was man, allgemein gesprochen,
'Runden' nennt, und diese Operation ist im Grunde vor und nach jeder
arithmetischen Operationen notwendig, wenn man sicherstellen will, dass
die Gesetze der Mathematik nicht verletzt werden. Die bekanntesten Arten
zum Runden sind: den 'oberen' Nachbarn, den 'unteren' Nachbarn oder die
'nächstliegende' Zahl im System der darstellbaren Gleitkommazahlen
auszuwählen.

--- Ende Zitat ---
http://www.faqs.org/faqs/de/comp-lang-java/faq/

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln