Ошибка округления в Python: np.floor(math.log(1000,10)) приводит к 2 вместо 3 [дубликат]Python

Программы на Python
Anonymous
Ошибка округления в Python: np.floor(math.log(1000,10)) приводит к 2 вместо 3 [дубликат]

Сообщение Anonymous »

Когда я выполняю np.floor(math.log(1000,10)) или np.floor(math.log(1000)/math.log(10)), я получаю результат np.float64(2.0), хотя результат должен быть 3.
Это вызвано тем, что когда я выполняю math.log(1000,10) или math.log(1000)/math.log(10), результат, который я получаю, равен 2,99999999999999996 вместо 3.
Есть ли способ обойти эту проблему?
Когда я делаю np.floor(math.log10(1000)), я получаю правильный результат: np.float64(3.0) результат. Но это не решает мою проблему, потому что мне нужно решение, которое работает во всех системах счисления, а не только в 10. math.log(1000,10) был просто примером, иллюстрирующим мою проблему.

Вернуться в «Python»