def random(self, n: Optional[int] = None) -> Union[List[float], float]:
        """ Generate random float(s) by using integers as fractional part.

        random.org's API doesn't offer floats, but a sequence of integers can emulate this:

        [06357, 114, 0210] => 0.06357_00114_00210
        """
        randoms = []
        n_or_default = 1 if n is None else n

        for _ in range(n_or_default):
            number_of_digits = _RandintsToFloatOptions.RANDINTS_NUMBER_OF_DIGITS.value
            max_int = int('9' * number_of_digits)

            randints = self.randint(0, max_int, _RandintsToFloatOptions.RANDINTS_QUANTITY.value)
            zero_padded_ints = (str(randint).zfill(number_of_digits) for randint in randints)
            random = float(f"0.{''.join(zero_padded_ints)}")
            randoms.append(random)

        return randoms if n else randoms[0]
Generate random float(s) by using integers as fractional part.

        random.org's API doesn't offer floats, but a sequence of integers can emulate this:

        [06357, 114, 0210] => 0.06357_00114_00210