математика — PHP: деление / умножение / округление, а не точное число

Я сделал страницу опроса и там я читаю количество голосов из БД.
Теперь я хотел получить процент голосов за отображение «индикатора выполнения».

Я написал эту функцию, чтобы получить процент:

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%?

1

Решение

Используйте функцию sprintf в PHP:

$formattedOutput = sprintf("%.1f",$floatValue);

дает вам значение $ floatValue с одним десятичным знаком.
увидеть Руководство по PHP для sprintf

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]