Rechenungenauigkeit
Henna
- javascript
0 Chris0 wahsaga0 wahsaga
0 twseiten_de0 Gunnar Bittersmann0 Struppi0 twseiten_de0 Struppi
Hallo,
ich arbeite gerade an einer Eingabemaske, in der Prozentwerte eingetragen werden sollen.
Dabei gubt es einen Knopf, der die Felder auf 100% bringt.
Dabei ist mir aufgefallen, das Javascript wohl ein Problem mit negativen Zahlen hat.
Beispiel:
<script>
alert(100 - 105.67);
</script>
Dabei kommt -5.670000000000002 heraus.
Kennt jemand diesen effekt und weiß wie ich ihn umgehen kann?
Gruß Henna
hallo,
wenn es dafür einen echten work-around gibt, wäre das ne feine sache. javascript hat aber nicht nur in diesem fall damit probleme. ich hatte immer eine eigene kleine helferfunktion zusätzlich genutzt.
zb. sowas wie:
http://www.dcljs.de/faq/antwort.php?Antwort=rechnen_runden
http://www.web-toolbox.net/webtoolbox/mathematik/werte-runden.htm
viele grüße
chris
hi,
Dabei ist mir aufgefallen, das Javascript wohl ein Problem mit negativen Zahlen hat.
Nein, das hat es nicht.
Wohl aber, wie auch andere Sprachen, und binäre Rechner generell, ein Problem mit der Genauigkeit von Dezimalbrüchen.
http://de.wikipedia.org/wiki/Gleitkommazahl#Dezimalzahlen
gruß,
wahsaga
hi,
Wohl aber, wie auch andere Sprachen, und binäre Rechner generell, ein Problem mit der Genauigkeit von Dezimalbrüchen.
Das klingt quarkig ...
Mit der Genaugikeit der Darstellung von Dezimalbrüchen als Binärzahlen trifft es etwas besser.
gruß,
wahsaga
Hallo,
man probiere aus
<script>
var Zahl=100;
alert(Zahl);
var Zahl1=Zahl-105.67;
alert(Zahl1);
var Zahl2=Zahl1+105.67;
alert(Zahl2);
</script>
Die Ungenauigkeit von Zahl1 müsste per Zahl2 aufgehoben werden,
obwohl das getrennte Variablen sind.
alert() formatiert u.a. zu Stringwerten. Die Funktionsweise von
alert() muss ermittelt werden.
Gruss Tom.
Hello out there!
<script>
Du weißt immer noch nicht, wie JavaScript-Bereiche in HMTL definiert werden?
Zum Rest deines Postings hab ich eine Frage: Hä??
See ya up the road,
Gunnar
alert() formatiert u.a. zu Stringwerten. Die Funktionsweise von
alert() muss ermittelt werden.
Mal wieder völliger Quatsch was du erzählst
Du hast dir die hier bereits verlinkten Seiten durchgelesen, auf denen erklärt wird warum es zu diesem Phänomen kommt?
Struppi.
Hallo,
alert() ist eine Routine, die zum Zweck der Anzeige von Werten und Zeigern zwangsweise formatiert - z.B. .toString() impliziert oder
nicht volle Kommastellen anzeigt etc.
Da der Fehler per alert()-Anweisung angezeigt wurde, ist die Formatierung durch alert() heranzuziehen.
Das war der Sinn meines Postings - an einem Beispiel.
Tom.
alert() ist eine Routine, die zum Zweck der Anzeige von Werten und Zeigern zwangsweise formatiert - z.B. .toString() impliziert oder
nicht volle Kommastellen anzeigt etc.
ok.
Da der Fehler per alert()-Anweisung angezeigt wurde, ist die Formatierung durch alert() heranzuziehen.
Aha, dann ersetze mal alert() durch document.write(), der Fehler ensteht nicht durch alert()
Das war der Sinn meines Postings - an einem Beispiel.
Eben, sinnlos.
Struppi.