Я сделал страницу опроса и там я читаю количество голосов из БД.
Теперь я хотел получить процент голосов за отображение «индикатора выполнения».
Я написал эту функцию, чтобы получить процент:
function progress($cur, $max, $round=1) {
return ($max!=0) ? round(($cur/$max) *100, $round).'%' : '0%';
}
Это, кажется, работает нормально, но для некоторых чисел это добавляет много нулей и 1 к правильному значению.
Например: 3/34 -> 8.800000000000001%. Для других значений (проверено, 1,2,4,6) это работает правильно.
Как я могу исправить это, чтобы отобразить 8,8%?
Используйте функцию sprintf в PHP:
$formattedOutput = sprintf("%.1f",$floatValue);
дает вам значение $ floatValue с одним десятичным знаком.
увидеть Руководство по PHP для sprintf
Других решений пока нет …