Причиной неточности является характер числовых баз. В базе 10 вы не можете точно представлять 1/3. Это становится 0.333 ... Однако в основании 3 1/3 точно представлено 0,1, а 1/2 - бесконечно повторяющееся десятичное (тризимальное?). Значения, которые могут быть окончательно представлены, зависят от числа уникальных простых факторов основания, поэтому основание 30 [2 * 3 * 5] может представлять больше фракций, чем основание 2 или основание 10. Еще больше для основания 210 [2 * 3 * 5 * 7].
Это отдельная проблема из «ошибки с плавающей запятой». Неточность заключается в том, что несколько миллиардов значений распространяются в гораздо большем диапазоне. Поэтому, если у вас есть 23 бит для значения, вы можете представить только около 8,3 миллионов различных значений. Затем 8-разрядный показатель предоставляет 256 опций для распределения этих значений. Эта схема позволяет получить наиболее точные десятичные числа вблизи 0, поэтому вы можете почти представить 0,1.