我有一个健康栏,我想使用最小/最大和实际数字
6是分
8是最大的
实际数字将在它们之间浮动,7为起始数字
试过((max_n + min_n)/ act_n)* 100,但当然不行。
我觉得那天他们在学校(eyeroll)上学的时候我病了
答案 0 :(得分:2)
如果您的浮点值为(6, 8)
,并且您希望值与最小值之间的距离表示为最大值之间的差异 -
var min = 6,
max = 8,
current = 7,
difference = max - min,
percent = (current - min) / difference; // <-- is the value you're after
// it is 50% between (6,8)
答案 1 :(得分:1)
我不确定我明白你在做什么,但我相信你是以错误的方式计算平均值。 您不应该将实际值除以可能的总数吗?
目前,您的逻辑看起来像这样: (8 + 6(14)/实际(7))* 100,即14/7 = 2 * 100 = 200。
我认为你需要反转这两个参数,min + max和实际值。
如果是我,而不是那样做,我实际上会从两者中减去最小量,然后将它除以两者之间的差值。 如果6和8是动态的,这可能看起来像:
((act_n - min_n)/(max_n - min_n))* 100
或者,使用值,那将是: ((7.2 - 6)/(8 - 6)* 100
(1.2 / 2)* 100 = 60,所以你的百分比是60%
我不使用Javascript,所以请忽略我所做的任何间距错误。我不知道语言有多严格。