获取宽度的数字百分比


Get the percentage of a number for width

我正在用html/css.php创建一个水平条形图。第一个值应该是100%,宽度为425px。之后的每个值(较低的值)都需要将其宽度计算为425px的百分比。

假设第一个值为63,宽度为425px(100%)。我需要计算下一个的宽度,如果下一个是50,那么31,27等等…

我对标记等很在行。这是我想弄清楚的数学计算。

function calc_width($max_width, $max_value, $value) {
    return $max_width * $value / $max_value;
}

因为$value / $max_width是适当的分数,所以您可以将最大宽度乘以该分数,以获得稍后值的适当宽度。

将总数除以100

乘以百分比

例如

425 / 100 = 4.25
25% = 4.25 x 25

将最高数字除以100得到一个百分比,然后乘以所需的百分比。

$maxWidth = 425; //The highest width
$onePercentage = $maxWidth / 100; //Calculate one percentage
$values[31] = $onePercentage * 31; //Times 31

只说"除以100%并乘以百分比"很诱人,但这是不正确的,因为从长远来看,这会导致不准确。正确的方法是保持一个宽度和百分比的数组,并从开始和之前的累积宽度计算每个宽度。

一个例子,如果你愿意的话,把29px分成四块25%:

29像素*25%=7像素
4个宽度为7px等于28px

通过累积计算:

29像素*25%=7像素
29像素*50%=15像素
29像素*75%=22像素
29px*100%=29px
4个宽度7、8、7、7px等于29px