for(x = 0; x != 1; x += 0.1)...
je téměř s jistotou nekonečné.

 

 

 

 

Viz program:

 

 

 

 

 

#include <stdio.h>
#include <stdlib.h>

int main(){
double x;
    for(x=0;x<2;x+=0.1){
        printf("%20.16lf\n",x);
    }
return 0;}


*******************************************************************************

  0.0000000000000000
  0.1000000000000000
  0.2000000000000000
  0.3000000000000000
  0.4000000000000000
  0.5000000000000000
  0.6000000000000000
  0.7000000000000000
  0.7999999999999999
  0.8999999999999999
  0.9999999999999999
  1.0999999999999999
  1.2000000000000000
  1.3000000000000000
  1.4000000000000001
  1.5000000000000002
  1.6000000000000003
  1.7000000000000004
  1.8000000000000005
  1.9000000000000006

                     

Je to následkem faktu,

že nedokážeme vyjádřit

                   1/5

konečným součtem

mocnin 2 (i záporných).


Dekadicky 0.1 = 0.00011001100110011... binárně


Dekadicky 0.01 = 0.00

_
0

_
0

_
0

_
0

_
1

_
0

_
1

_
0

_
0

_
0

_
1

_
1

_
1

_
1

_
0

_
1

_
0

_
1

_
1

_
1

 
 binárně


0


.


0


0


1


1


0


 = 


 = 


0


.


0


0


0


0


0


0


0


0


0

_
1

_
0

_
0

_
0

_
0

_
0

_
1

_
1

_
0

_
0

_
0

_
1

_
0

_
0

_
1

_
0

_
0

_
1

_
1

_
0

_
1

_
1

_
1

_
0

_
1

_
0

_
0

_
1

_
0

_
1

_
1

_
1

_
1

_
0

_
0

_
0

_
1

_
1

_
0

_
1

_
0

_
1

_
0

_
0

_
1

_
1

_
1

_
1

_
1

_
1

_
0

_
1

_
1

_
1

_
1

_
1

_
0

_
0

_
1

_
1

_
1

_
0

_
1

_
1

_
0

_
1

_
1

_
0

_
0

_
1

_
0

_
0

_
0

_
1

_
0

_
1

_
1

_
0

_
1

_
0

_
0

_
0

_
0

_
1

_
0

_
0

_
1

_
0

_
1

_
0

_
1

_
0

_
1


2






x


 = 


0


.

_
0

_
1


2


2


x


 = 


0


.

_
1

_
0


2


3


x


 = 


0


.

_
1

_
1


2


 = 


0


.

_
1


2


 —


→ 


1


  na některých procesorech


x


 = 


1


 


/


3