• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Funktion rechnet nicht richtig

Status
Für weitere Antworten geschlossen.

smertullus

Neues Mitglied
[FONT=&quot]Hallo zusammen,

ich habe ein Problem beim rechnen innerhalb einer Funtion.
Und zwar, wenn ich 1/0.000000001 berechnen lasse, bekomme ich das Ergebnis 999999999.9999999 (anstatt 1000000000).

Wie lasse ich die Funktion gleich richtig rechnen, ohne dass das Ergebniss zum Schluß erst gerundet werden muß? Kann mir hierbei jemand helfen?

Vielen Dank im Voraus!


[/FONT]
Code:
[FONT=&quot]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head> 
    <title>Unbenannte Seite</title> 
    
<script type="text/javascript"> 
<!-- 

    
[/FONT][FONT=&quot]function Button1_onclick() { 
   document.Formular.Text1.value = 1/0.000000001;    
    
   //erwartet:1000000000 - Ergebnis: 999999999.9999999 
    
} 

//--> 
</script>      
    
</head> 
<body> 
<form name="Formular" action=""> 
    <input id="Button1" type="button" value="button" onclick="return Button1_onclick()" /> 
    <br /> 
    <input id="Text1" type="text" /> 
</form> 
</body> 
</html>[/FONT]
 
Das ist leider eines der kleinen Tücken des Computer-Rechnens.
Es ist kein Problem von JS, PHP oder C, sondern ein allgemeines.
Es hängt davon ab, wozu du das brauchst,
denn so könnte man dann die Funktion richtig nachbauen.
 
[FONT=&quot]Hallo zusammen,


[/FONT]
Code:
[FONT=&quot]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head> 
    <title>Unbenannte Seite</title> 
    
<script type="text/javascript"> 
<!-- 

    
[/FONT][FONT=&quot]function Button1_onclick() { 
   var math;
   math=1/0.000000001;
   document.Formular.Text1.value = math;    
    
   //erwartet:1000000000 - Ergebnis: 999999999.9999999 
    
} 

//--> 
</script>      
    
</head> 
<body> 
<form name="Formular" action=""> 
    <input id="Button1" type="button" value="button" onclick="return Button1_onclick()" /> 
    <br /> 
    <input id="Text1" type="text" /> 
</form> 
</body> 
</html>[/FONT]


hab einfach mal ne Variable eingefuegt. gehts so?
 
Zuletzt bearbeitet:
Hab mal in einem anderen Forum nachgefragt und den Grund gefunden:
Wikipedia schrieb:
Dezimalzahlen

Schon einfache Dezimalzahlen, z. B. 0,1, können nicht mehr exakt als binäre Gleitkommazahlen dargestellt werden, da viele im Dezimalsystem abbrechende Kommazahlen im Binärsystem nicht abbrechende, periodische Zahlen sind; von diesen werden nur die ersten p Ziffern gespeichert, wodurch Ungenauigkeit entsteht. Dezimal 0,1 ist binär 0,0001100110011… In einem binären Gleitkommasystem ist also 10 · 0,1 < 1, da die 0,1 abgerundet wird und nicht den exakten Wert approximiert.
Gleitkommazahl - Wikipedia
 
Status
Für weitere Antworten geschlossen.

Neueste Beiträge

Zurück
Oben