Cauculo de metragem com arredondamento para cima
Muito boa noite Senhores,
Já acompanho o fórum a muito, muito tempo, mas nunca tive a necessidade de postar pois graças aos nobres colegas que são feras sempre sanei minhas dúvidas em post já resolvidos.
Acontece que tenho um caso no mínimo inusitado para mim:
Estou com um projeto de um cliente que trabalha com venda de concreto, desses de betoneira e vende o material em M³ (cubicos), porém o cliente dele, tras a medida em M² (quadrados), para fazer a conversão ele calcula essa area (M²) multiplicando pela altura por emplo de laje em 0,08, logo, Seria M² X 0,08 = M³... porém, o caminhão só sai com medidas pre determinadas, Tipo 1,5m³, 3M³, 4M³, 5,5M³....
Acontece que em alguns calculos dá medidas quebradas ex:
20M² - 20X0,08=1,6M³
26M² - 26X0,08=2,08M³
Assim sendo esses valores deveriam ir para o próximo meio possível, ou seja arredondaria para a proxima metade acima....
1,6 passaria para 2M³ e 2,08 para 2,5M³
Tentei de todas as formas e não consegui chegar nesse resultado, visto que com CEIL 1,6 passaria para 2, porém 2,08 passaria para 3.....
Com ROUND 1,6 passaria para 2, porem 2,08 iria para 2 e o cliente tomaria prejuizo....
Sendo assim gostaria da ajuda dos nobres colegas para me ajudar a resolver esse porém...
Abaixo o código que escrevi, mas não chegou ao valor necessário...
$total = 0;
foreach ($produtos as $p) {
$m3=$p->quantidade * $p->altura;
$preco=$p->precoVenda;
$m3=round($m3,1,PHP_ROUND_HALF_UP);
if ($p->unidade == "M³"){
$subTotal = $preco * $m3;
}
else { $subTotal = $p->quantidade * $preco;
}
$total = $total + $subTotal;
$m3total = $m3total + $m3;
Meu problema está exatamente aqui:
$m3=round($m3,1,PHP_ROUND_HALF_UP);
Desde Já grato pela atenção de todos.
Discussão (5)
Carregando comentários...