Получить процент от числа по ширине - PullRequest
0 голосов
/ 27 февраля 2012

Я создаю горизонтальную гистограмму с помощью html / css / php. Предполагается, что первое значение будет 100% и будет иметь ширину 425 пикселей. Каждое значение после этого (которое ниже) должно иметь ширину, рассчитанную в процентах от 425 пикселей.

Допустим, первое значение равно 63 и имеет ширину 425 пикселей (100%). Мне нужно выяснить ширину следующего, если следующий равен 50, затем 31, 27 и так далее ...

Я в порядке с разметкой и т. Д. Это математический расчет, который я пытаюсь понять.

Ответы [ 4 ]

2 голосов
/ 27 февраля 2012
function calc_width($max_width, $max_value, $value) {
    return $max_width * $value / $max_value;
}

Поскольку $value / $max_width является подходящей дробью, вы можете просто умножить максимальную ширину на эту дробь, чтобы получить соответствующую ширину для последующих значений.

2 голосов
/ 27 февраля 2012

Разделите итог на 100

умножить на процент

например

425 / 100 = 4.25

25% = 4.25 x 25
1 голос
/ 27 февраля 2012

Соблазнительно просто сказать «разделить на 100% и умножить на процент», но это неверно , так как это приведет к неточностям в долгосрочной перспективе. Правильный способ сделать это - сохранить массив ширин и процентов и рассчитать каждую ширину с начала и с предыдущей накопленной ширины.

Пример, если хотите, разбить 29px на четыре части по 25%:

29px * 25% = 7px
4 ширины 7px равны 28px всего

А с совокупными расчетами:

29px * 25% = 7px
29px * 50% = 15px
29px * 75% = 22px
29px * 100% = 29px
4 ширины 7, 8, 7, 7 пикселей равны 29px всего

1 голос
/ 27 февраля 2012

Разделите наибольшее число на 100, чтобы получить один процент, а затем умножьте на необходимое количество процентов.

$maxWidth = 425; //The highest width
$onePercentage = $maxWidth / 100; //Calculate one percentage
$values[31] = $onePercentage * 31; //Times 31
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...