cmq accennavano prima, non si puo' pretendere di rappresentare un set infinito di numeri su un set finito, e tra l'altro MOLTO piccolo, di bit. per forza di cose e' necessario avere delle approssimazioni.

ogni linguaggio (ogni compilatore all'interno dello stesso linguaggio, addirittura) e' libero di trattare come meglio preferisce tutte quelle cose che sono lasciate all'implementatore dallo standard...

se in c provi a salvare la radice di 2 in un double e poi ne stampi il valore per 100mila volte, e' abbastanza probabile che tu ottenga parecchi valori diversi...