Иногда выводит вместо целого числа что-то вроде x.9999999999

Я написал функцию, которая выбирает случайное число с определённой точностью. Мой код:

import random

def choose(_min, _max, precise = 1):
    if precise != int(precise):
        print("Expected an integer precise")
        exit()
    else:
        if _min < _max:
            _min *= 10**precise
            _max *= 10**precise
            (_min, _max) = (int(_min), int(_max))

            number = random.randint(_min, _max)
            number /= 10**precise

            if float(number) == int(number):
                number = int(number)

            return number

# ниже я тестировал функцию
r = choose(1, 10**10, -9)
print(r)

Однажды прогнал код и получил результат:

7999999999.999999

вместо ожидаемого 8000000000. Как это исправить?


Ответы (0 шт):