code: def gen_random_float(minimum, maximum, decimals=2):
      
      if not (isinstance(minimum, float) and isinstance(maximum, float)):
          raise ValueError('param minimum, maximum should be float, but got minimum: {} maximum: {}'.
                           format(type(minimum), type(maximum)))
      if not isinstance(decimals, int):
          raise ValueError('param decimals should be a int, but we got {}'.format(type(decimals)))
      # 精度目前只支持最大 15 位
      decimals = 15 if decimals > 15 else decimals
      # 存在 round 之后四舍五入之后，精度不匹配的情况，新加判断
      while True:
          random_float = random.uniform(minimum, maximum)
          random_float = round(random_float, decimals)
          if len(str(random_float).split('.')[-1]) == decimals:
              return random_float
docs: 指定一个浮点数范围，随机生成并返回区间内的一个浮点数，区间为闭区间
      受限于 random.random 精度限制，支持最大 15 位精度
  
      :param:
          * minimum: (float) 浮点数最小取值
          * maximum: (float) 浮点数最大取值
          * decimals: (int) 小数位数，默认为 2 位
  
      :return:
          * random_float: (float) 随机浮点数
  
      举例如下::
  
          print('--- gen_random_float demo ---')
          print(gen_random_float(1.0, 9.0))
          print(gen_random_float(1.0, 9.0, decimals=10))
          print(gen_random_float(1.0, 9.0, decimals=20))
          print('---')
  
      执行结果::
  
          --- gen_random_float demo ---
          6.08
          6.8187342239
          2.137902497554043
          ---