0

我有一个健康栏,我想使用最小/最大和实际数字。
6 是最小值
8 是最大值
,实际数字将在它们之间浮动,以 7 作为起始数字。
试过 ((max_n + min_n) / act_n)*100,但这当然行不通。
我想那天他们在学校检查的时候我病了(眼睛)

4

2 回答 2

4

如果您有一个浮点值,(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)
于 2015-02-10T20:46:27.257 回答
1

我不确定我是否理解您在做什么,但我相信您以错误的方式计算平均值。您不应该将实际值除以可能的总数吗?

目前,您的逻辑如下所示:(8 + 6 (14) / Actual (7) )*100,即 14/7 = 2 * 100 = 200。

我认为您需要颠倒这两个参数,最小值+最大值和实际值。

如果是我,而不是那样做,我实际上会从两者中减去最小金额,然后将其除以两者之间的差额。如果 6 和 8 是动态的,则可能如下所示:

( (act_n - min_n) / (max_n - min_n) )*100

或者,对于值,这将是: ( (7.2 - 6) / (8 - 6)*100

(1.2 / 2)*100 = 60,所以你的百分比是 60%

我不使用 Javascript,所以请忽略我犯的任何间距错误。我不知道语言有多严格。

于 2015-02-10T20:38:06.377 回答