horachorus: for-schleife funktioniert nicht

Beitrag lesen

Hallo Leute!

Als Übung habe ich diese Anwendung geschrieben:

  
<script type="text/javascript">  
  
function mab() {  
  
var i  
  
for (i = 0; i <= 100; i += 0.1) {  
  
var a = 1;  
var b = i;  
var mab;  
  
  
 if (a <= (1/b) && a <= (1/a + b)) {  
  
  var mab = a;  
  
 }  
  
  
  
 else if (1/b <= a && 1/b <= (1/a + b)) {  
  
  var mab = 1/b;  
 }  
  
  
  
 else if ((1/a + b) <= a && (1/a + b) <= 1/b) {  
  
  var mab = (1/a + b);  
  
 };  
  
document.write("m(a,b) ist " + Math.round(mab * 1000)/1000 + " wenn b "+ i + " ist und a 1  
  
ist.<br />");  
};  
}  
  
mab();  
  
</script>

so, nur leider funktioniert das nicht ganz so wie ich es mir vorgestellt habe.

eigentlich müsste das doch so aussehen?

m(a,b) ist 1 wenn b 0.1 ist und a 1 ist.
m(a,b) ist ... wenn b 0.2 ist und a 1 ist.
m(a,b) ist ... wenn b 0.3 ist und a 1 ist.
m(a,b) ist ... wenn b 0.4 ist und a 1 ist.
m(a,b) ist ... wenn b 0.5 ist und a 1 ist.
m(a,b) ist ... wenn b 0.6 ist und a 1 ist.
m(a,b) ist ... wenn b 0.7 ist und a 1 ist.
usw...

nur leider wird es so angezeigt:

m(a,b) ist 1 wenn b 0.1 ist und a 1 ist.
m(a,b) ist 1 wenn b 0.2 ist und a 1 ist.
m(a,b) ist 1 wenn b 0.30000000000000004 ist und a 1 ist.
m(a,b) ist 1 wenn b 0.4 ist und a 1 ist.
m(a,b) ist 1 wenn b 0.5 ist und a 1 ist.
m(a,b) ist 1 wenn b 0.6 ist und a 1 ist.
m(a,b) ist 1 wenn b 0.7 ist und a 1 ist.
m(a,b) ist 1 wenn b 0.7999999999999999 ist und a 1 ist.
m(a,b) ist 1 wenn b 0.8999999999999999 ist und a 1 ist.
m(a,b) ist 1 wenn b 0.9999999999999999 ist und a 1 ist.
m(a,b) ist 0.909 wenn b 1.0999999999999999 ist und a 1 ist.
m(a,b) ist 0.833 wenn b 1.2 ist und a 1 ist.
m(a,b) ist 0.769 wenn b 1.3 ist und a 1 ist.
m(a,b) ist 0.714 wenn b 1.4000000000000001 ist und a 1 ist.
m(a,b) ist 0.667 wenn b 1.5000000000000002 ist und a 1 ist.
m(a,b) ist 0.625 wenn b 1.6000000000000003 ist und a 1 ist.
m(a,b) ist 0.588 wenn b 1.7000000000000004 ist und a 1 ist.
m(a,b) ist 0.556 wenn b 1.8000000000000005 ist und a 1 ist.
m(a,b) ist 0.526 wenn b 1.9000000000000006 ist und a 1 ist.

warum das?

wäre froh um eventuelle antworten
danke schon mal im voraus!