Um número de ponto flutuante que guarda frações é armazenado como bits de sinal, expoente e mantissa.
O formato IEEE 754 se divide em um bit de sinal, um expoente e uma mantissa. Um float de 32 bits tem 1+8+23 bits; um double de 64 bits tem 1+11+52 bits.
Mesmo um número tão simples quanto 0.1 em decimal se torna uma fração que se repete infinitamente em binário, então armazená-lo em bits finitos deixa um pequeno erro.
Os inteiros que esta ferramenta trata são exatos por meio de BigInt, mas os valores de ponto flutuante são aproximações. Entender o layout de bits explica de onde vem o erro.