将数字转换为指定范围的分数

因此,我正在寻找一种将任何数字转换为分数的巧妙方法。我需要实现这一点:

0.0001 >= my_number >= 0.00001

问题在于my_number可能为:

194619.98341

以及:

0.00231134

(示例),因此它可能是大于0的任何数字。我在努力创建一个函数来对其进行转换,因此该函数属于指定范围。

harry1900 回答:将数字转换为指定范围的分数

如果您有一个数字列表,并且希望将它们全部包含在此指定范围内,则可以执行以下操作:

def scale(numbers,low_bound,high_bound):
    return [(x - min(numbers)) / (max(numbers) - min(numbers)) * (high_bound - low_bound) + low_bound for x in numbers]

现在,如果您愿意的话:

list = [1209.76671,0.9831,0.000009873,123]
scale(list,0.00001,0.0001)

# which gives:
# [0.0001,1.0073136507576801e-05,1e-05,1.9150523907020985e-05]

请注意,这将始终将数字列表的最小值设置为0.00001,并将最大值设置为0.0001。

现在,我不知道这是否能回答您的问题,所以请告诉我我在解释您的问题时是否被误解了...

,

原来并不难:

if x > 0.00001:
    while not 0.0001 >= x >= 0.00001:
        x = x / 10
else:
    while not 0.0001 >= x >= 0.00001:
        x = x * 10
本文链接:https://www.f2er.com/3165758.html

大家都在问