Что-то вроде этого:
function calc_price($bytes, $rate) {
return ($bytes / (1024*1024*1024)) * $rate;
}
В основном:
- взять количество байтов
- конвертировать в гигабайты
- умножить на цену за гигабайт
Вы могли бы сделать умножение заранее, чтобы использовать 1073741824
в своем коде - было бы немного быстрее; но я думаю, что это усложнит понимание кода.
Например, следующая часть кода:
var_dump(calc_price(2*1024*1024*1024, 0.22));
Даст вам:
float 0.44
Примечание: это ни к чему не приводит: это вопрос представления, и его следует выполнять на уровне представления, а не в функции, выполняющей вычисления.
См. Для этого функции round
и / или number_format
.
Например, следующая часть кода:
$price = calc_price(2.56*1024*1024*1024, 0.22);
echo number_format($price, 2, '.', ',');
даст вам:
0.56