Скорей всего особенность чисел с плавающей запятой.
Дело в том, что при кодировании некоторых чисел двоичный код получается бесконечным. Например 0.1 в двоичной системе — 0.0(0011). В памяти компьютера это будет 1.1001100110011001100110011001100110011001100110011010b * 2^(-4), а при переводе в десятичную — 0.10000000000000000555111512.
ИМХО это одна из проблем динамической типизации.