Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rafael Augusto_173176

Problemas com Floor()

Recommended Posts

Boa tarde pessoal, e o seguinte, estou fazendo um calculo e apos esse calculo preciso arredondar o valor sempre pra baixo, e pra isso estou utilizando o Floor(), porem em alguns casos eu tenho problema.

Ex: quando o calculo é 10.000,00 parcelado em 4 vezes, o resultado da 12.37,00 ao inves de 12.370,00, isso acontece em varios casos que terminam com 0.

 

simular.php

<?php
	require("config.php");

	$sql = $pdo->prepare("SELECT * FROM referencias");
	$sql->execute();
	$ln = $sql->fetchObject();

	
	$valor = strip_tags($_POST['valor']);
	$parc  = strip_tags($_POST['parcelas']);
	  
	$percentual   = $ln->tarifa_cartao / 100.0;
	$percentual2  = $ln->tarifa_parcelado / 100.0;
	$percentual3  = $ln->tarifa_cdc / 100.0;
	$percentual4  = $ln->tarifa_cdc_parcelado / 100.0;
	$percentual5  = $ln->comissao_vendedor / 100.0;
	$percentual6  = $ln->comissao_vendedor_parcelado / 100.0;
	$percentual7  = $ln->comissao_ponto_venda / 100.0;

	$a = $percentual + $percentual2 + $percentual3 + $percentual4 + $percentual5 + $percentual6 + $percentual7;
	$ponrT = 100 / 100.0;
	$outT = $ponrT - $a;
	$valor_finalT  = $valor / $outT;
		  

		//echo $valor;
	$valor1 = floor($valor*1000);
	$valor2 = floor($valor);


	if(strlen($valor) <= 6){
		if($parc == 2){
			$ponr = 100 / 100.0;
			$out = $ponr - $percentual5;
			$valor_semi_final  = $valor_finalT / $out;
			$valor_final =  $valor_semi_final; 
			$valor_aqui = floor($valor_final);
			$outValor = number_format(floor($valor_final),2,',','.');
			$valorPac = $valor_aqui / $parc;
			$valorFinalParc = number_format($valorPac,2,',','.');
			$my = array('valor' => $valor_aqui, 'outvalor' => $outValor, 'valorparc' => $valorFinalParc);
			 
			$new = json_encode($my);

			echo($new);

		}elseif($parc == 3){
			$calc = $percentual5 + $percentual5;
			$ponr = 100 / 100.0;
			$out = $ponr - $calc;
			$valor_semi_final  = $valor_finalT / $out;
			$valor_final = $valor_semi_final; 
			$valor_aqui = floor($valor_final);
			$outValor = number_format(floor($valor_final),2,',','.');
			$valorPac = $valor_aqui / $parc;
			$valorFinalParc = number_format($valorPac,2,',','.');
			$my = array('valor' => $valor_aqui, 'outvalor' => $outValor, 'valorparc' => $valorFinalParc);
			 
			$new = json_encode($my);

			echo($new);
			
		}elseif($parc == 4){
			$calc = $percentual5 + $percentual5 + $percentual5;
			$ponr = 100 / 100.0;
			$out = $ponr - $calc;
			$valor_semi_final  = $valor_finalT / $out;
			$valor_final = $valor_semi_final; 
			$valor_aqui = floor($valor_final);
			$outValor = number_format(floor($valor_final),2,',','.');
			$valorPac = $valor_aqui / $parc;
			$valorFinalParc = number_format($valorPac,2,',','.');
			$my = array('valor' => $valor_aqui, 'outvalor' => $outValor, 'valorparc' => $valorFinalParc);
			 
			$new = json_encode($my);

			echo($new);
			
		}elseif($parc == 5){
			$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5;
			$ponr = 100 / 100.0;
			$out = $ponr - $calc;
			$valor_semi_final  = $valor_finalT / $out;
			$valor_final = $valor_semi_final; 
			$valor_aqui = floor($valor_final);
			$outValor = number_format(floor($valor_final),2,',','.');
			$valorPac = $valor_aqui / $parc;
			$valorFinalParc = number_format($valorPac,2,',','.');
			$my = array('valor' => $valor_aqui, 'outvalor' => $outValor, 'valorparc' => $valorFinalParc);
			 
			$new = json_encode($my);

			echo($new);
			
		}elseif($parc == 6){
			$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5;
			$ponr = 100 / 100.0;
			$out = $ponr - $calc;
			$valor_semi_final  = $valor_finalT / $out;
			$valor_final = $valor_semi_final; 
			$valor_aqui = floor($valor_final);
			$outValor = number_format(floor($valor_final),2,',','.');
			$valorPac = $valor_aqui / $parc;
			$valorFinalParc = number_format($valorPac,2,',','.');
			$my = array('valor' => $valor_aqui, 'outvalor' => $outValor, 'valorparc' => $valorFinalParc);
			 
			$new = json_encode($my);

			echo($new);
			
		}elseif($parc == 7){
			$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5;
			$ponr = 100 / 100.0;
			$out = $ponr - $calc;
			$valor_semi_final  = $valor_finalT / $out;
			$valor_final = $valor_semi_final; 
			$valor_aqui = floor($valor_final);
			$outValor = number_format(floor($valor_final),2,',','.');
			$valorPac = $valor_aqui / $parc;
			$valorFinalParc = number_format($valorPac,2,',','.');
			$my = array('valor' => $valor_aqui, 'outvalor' => $outValor, 'valorparc' => $valorFinalParc); 
			 
			$new = json_encode($my);

			echo($new);
					
		}elseif($parc == 8){
			$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5;
			$ponr = 100 / 100.0;
			$out = $ponr - $calc;
			$valor_semi_final  = $valor_finalT / $out;
			$valor_final = $valor_semi_final; 
			$valor_aqui = floor($valor_final);
			$outValor = number_format(floor($valor_final),2,',','.');
			$valorPac = $valor_aqui / $parc;
			$valorFinalParc = number_format($valorPac,2,',','.');
			$my = array('valor' => $valor_aqui, 'outvalor' => $outValor, 'valorparc' => $valorFinalParc); 
			 
			$new = json_encode($my);

			echo($new);
			
		}elseif($parc == 9){
			$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5;
			$ponr = 100 / 100.0;
			$out = $ponr - $calc;
			$valor_semi_final  = $valor_finalT / $out;
			$valor_final = $valor_semi_final; 
			$valor_aqui = floor($valor_final);
			$outValor = number_format(floor($valor_final),2,',','.');
			$valorPac = $valor_aqui / $parc;
			$valorFinalParc = number_format($valorPac,2,',','.');
			$my = array('valor' => $valor_aqui, 'outvalor' => $outValor, 'valorparc' => $valorFinalParc); 
			 
			$new = json_encode($my);

			echo($new);
			
		}elseif($parc == 10){
			$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5;
			$ponr = 100 / 100.0;
			$out = $ponr - $calc;
			$valor_semi_final  = $valor_finalT / $out;
			$valor_final = $valor_semi_final; 
			$valor_aqui = floor($valor_final);
			$outValor = number_format(floor($valor_final),2,',','.');
			$valorPac = $valor_aqui / $parc;
			$valorFinalParc = number_format($valorPac,2,',','.');
			$my = array('valor' => $valor_aqui, 'outvalor' => $outValor, 'valorparc' => $valorFinalParc);
			 
			$new = json_encode($my);

			echo($new);
			
		}elseif($parc == 11){
			$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5;
			$ponr = 100 / 100.0;
			$out = $ponr - $calc;
			$valor_semi_final  = $valor_finalT / $out;
			$valor_final = $valor_semi_final; 
			$valor_aqui = floor($valor_final);
			$outValor = number_format(floor($valor_final),2,',','.');
			$valorPac = $valor_aqui / $parc;
			$valorFinalParc = number_format($valorPac,2,',','.');
			$my = array('valor' => $valor_aqui, 'outvalor' => $outValor, 'valorparc' => $valorFinalParc); 
			 
			$new = json_encode($my);

			echo($new);
			
		}elseif($parc == 12){
			$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5;
			$ponr = 100 / 100.0;
			$out = $ponr - $calc;
			$valor_semi_final  = $valor_finalT / $out;
			$valor_final = $valor_semi_final;
			$valor_aqui = floor($valor_final);
			$outValor = number_format(floor($valor_final),2,',','.');
			$valorPac = $valor_aqui / $parc;
			$valorFinalParc = number_format($valorPac,2,',','.');
			$my = array('valor' => $valor_aqui, 'outvalor' => $outValor, 'valorparc' => $valorFinalParc);
			 
			$new = json_encode($my);

			echo($new);
			
		}
	}elseif(strlen($valor) >= 8){
		if($parc == 2){
			$ponr = 100 / 100.0;
			$out = $ponr - $percentual5;
			$valor_semi_final  = $valor_finalT / $out;
			$valor_final = $valor_semi_final*1000; 
			$valor_aqui  = floor($valor_final);
			$outValor = number_format(floor($valor_final),2,',','.');
			$valorPac = $valor_aqui / $parc;
			$valorFinalParc = number_format($valorPac,2,',','.');
			$my = array('valor' => $valor_aqui, 'outvalor' => $outValor, 'valorparc' => $valorFinalParc);
			
			$new = json_encode($my);

			echo($new);

		}elseif($parc == 3){
			$calc = $percentual5 + $percentual5;
			$ponr = 100 / 100.0;
			$out = $ponr - $calc;
			$valor_semi_final  = $valor_finalT / $out;
			$valor_final = $valor_semi_final*1000; 
			$valor_aqui  = floor($valor_final);
			$outValor = number_format(floor($valor_final),2,',','.');
			$valorPac = $valor_aqui / $parc;
			$valorFinalParc = number_format($valorPac,2,',','.');
			$my = array('valor' => $valor_aqui, 'outvalor' => $outValor, 'valorparc' => $valorFinalParc);
			
			$new = json_encode($my);

			echo($new);
			
		}elseif($parc == 4){
			$calc = $percentual5 + $percentual5 + $percentual5;
			$ponr = 100 / 100.0;
			$out = $ponr - $calc;
			$valor_semi_final  = $valor_finalT / $out;
			$valor_final = $valor_semi_final*1000; 
			$valor_aqui  = floor($valor_final);
			$outValor = number_format(floor($valor_final),2,',','.');
			$valorPac = $valor_aqui / $parc;
			$valorFinalParc = number_format($valorPac,2,',','.');
			$my = array('valor' => $valor_aqui, 'outvalor' => $outValor, 'valorparc' => $valorFinalParc);
			
			$new = json_encode($my);

			echo($new);
		}elseif($parc == 5){
			$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5;
			$ponr = 100 / 100.0;
			$out = $ponr - $calc;
			$valor_semi_final  = $valor_finalT / $out;
			$valor_final = $valor_semi_final*1000; 
			$valor_aqui  = floor($valor_final);
			$outValor = number_format(floor($valor_final),2,',','.');
			$valorPac = $valor_aqui / $parc;
			$valorFinalParc = number_format($valorPac,2,',','.');
			$my = array('valor' => $valor_aqui, 'outvalor' => $outValor, 'valorparc' => $valorFinalParc);
			
			$new = json_encode($my);

			echo($new);
			
		}elseif($parc == 6){
			$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5;
			$ponr = 100 / 100.0;
			$out = $ponr - $calc;
			$valor_semi_final  = $valor_finalT / $out;
			$valor_final = $valor_semi_final*1000; 
			$valor_aqui  = floor($valor_final);
			$outValor = number_format(floor($valor_final),2,',','.');
			$valorPac = $valor_aqui / $parc;
			$valorFinalParc = number_format($valorPac,2,',','.');
			$my = array('valor' => $valor_aqui, 'outvalor' => $outValor, 'valorparc' => $valorFinalParc);
			
			$new = json_encode($my);

			echo($new);
			
		}elseif($parc == 7){
			$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5;
			$ponr = 100 / 100.0;
			$out = $ponr - $calc;
			$valor_semi_final  = $valor_finalT / $out;
			$valor_final = $valor_semi_final*1000; 
			$valor_aqui  = floor($valor_final);
			$outValor = number_format(floor($valor_final),2,',','.');
			$valorPac = $valor_aqui / $parc;
			$valorFinalParc = number_format($valorPac,2,',','.');
			$my = array('valor' => $valor_aqui, 'outvalor' => $outValor, 'valorparc' => $valorFinalParc);
			
			$new = json_encode($my);

			echo($new);
					
		}elseif($parc == 8){
			$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5;
			$ponr = 100 / 100.0;
			$out = $ponr - $calc;
			$valor_semi_final  = $valor_finalT / $out;
			$valor_final = $valor_semi_final*1000; 
			$valor_aqui  = floor($valor_final);
			$outValor = number_format(floor($valor_final),2,',','.');
			$valorPac = $valor_aqui / $parc;
			$valorFinalParc = number_format($valorPac,2,',','.');
			$my = array('valor' => $valor_aqui, 'outvalor' => $outValor, 'valorparc' => $valorFinalParc);
			
			$new = json_encode($my);

			echo($new);
			
		}elseif($parc == 9){
			$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5;
			$ponr = 100 / 100.0;
			$out = $ponr - $calc;
			$valor_semi_final  = $valor_finalT / $out;
			$valor_final = $valor_semi_final*1000; 
			$valor_aqui  = floor($valor_final);
			$outValor = number_format(floor($valor_final),2,',','.');
			$valorPac = $valor_aqui / $parc;
			$valorFinalParc = number_format($valorPac,2,',','.');
			$my = array('valor' => $valor_aqui, 'outvalor' => $outValor, 'valorparc' => $valorFinalParc);
			
			$new = json_encode($my);

			echo($new);
			
		}elseif($parc == 10){
			$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5;
			$ponr = 100 / 100.0;
			$out = $ponr - $calc;
			$valor_semi_final  = $valor_finalT / $out;
			$valor_final = $valor_semi_final*1000; 
			$valor_aqui  = floor($valor_final);
			$outValor = number_format(floor($valor_final),2,',','.');
			$valorPac = $valor_aqui / $parc;
			$valorFinalParc = number_format($valorPac,2,',','.');
			$my = array('valor' => $valor_aqui, 'outvalor' => $outValor, 'valorparc' => $valorFinalParc);
			
			$new = json_encode($my);

			echo($new);
		}elseif($parc == 11){
			$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5;
			$ponr = 100 / 100.0;
			$out = $ponr - $calc;
			$valor_semi_final  = $valor_finalT / $out;
			$valor_final = $valor_semi_final*1000; 
			$valor_aqui  = floor($valor_final);
			$outValor = number_format(floor($valor_final),2,',','.');
			$valorPac = $valor_aqui / $parc;
			$valorFinalParc = number_format($valorPac,2,',','.');
			$my = array('valor' => $valor_aqui, 'outvalor' => $outValor, 'valorparc' => $valorFinalParc, 'valorReal' => $valor);
			
			$new = json_encode($my);

			echo($new);
			
		}elseif($parc == 12){
			$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5;
			$ponr = 100 / 100.0;
			$out = $ponr - $calc;
			$valor_semi_final  = $valor_finalT / $out;
			$valor_final = $valor_semi_final*1000; 
			$valor_aqui  = floor($valor_final);
			$outValor = number_format(floor($valor_final),2,',','.');
			$valorPac = $valor_aqui / $parc;
			$valorFinalParc = number_format($valorPac,2,',','.');
			$my = array('valor' => $valor_aqui, 'outvalor' => $outValor, 'valorparc' => $valorFinalParc);
			
			$new = json_encode($my);

			echo($new);
			
		}
	}

	
	
	/*if($parc == 2){
		$ponr = 100 / 100.0;
		$out = $ponr - $percentual5;
		$valor_semi_final  = $valor_finalT / $out;
		$valor_final = $valor_semi_final; 
		  
		echo floor($valor_final);

	}elseif($parc == 3){
		$calc = $percentual5 + $percentual5;
		$ponr = 100 / 100.0;
		$out = $ponr - $calc;
		$valor_semi_final  = $valor_finalT / $out;
		$valor_final = $valor_semi_final; 
		  
		echo floor($valor_final);
		
	}elseif($parc == 4){
		$calc = $percentual5 + $percentual5 + $percentual5;
		$ponr = 100 / 100.0;
		$out = $ponr - $calc;
		$valor_semi_final  = $valor_finalT / $out;
		$valor_final = $valor_semi_final; 
		  
		echo floor($valor_final);
		
	}elseif($parc == 5){
		$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5;
		$ponr = 100 / 100.0;
		$out = $ponr - $calc;
		$valor_semi_final  = $valor_finalT / $out;
		$valor_final = $valor_semi_final; 
		  
		echo floor($valor_final);
		
	}elseif($parc == 6){
		$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5;
		$ponr = 100 / 100.0;
		$out = $ponr - $calc;
		$valor_semi_final  = $valor_finalT / $out;
		$valor_final = $valor_semi_final; 
		  
		echo floor($valor_final);
		
	}elseif($parc == 7){
		$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5;
		$ponr = 100 / 100.0;
		$out = $ponr - $calc;
		$valor_semi_final  = $valor_finalT / $out;
		$valor_final = $valor_semi_final; 
		  
		echo floor($valor_final);
				
	}elseif($parc == 8){
		$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5;
		$ponr = 100 / 100.0;
		$out = $ponr - $calc;
		$valor_semi_final  = $valor_finalT / $out;
		$valor_final = $valor_semi_final; 
		  
		echo floor($valor_final);
		
	}elseif($parc == 9){
		$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5;
		$ponr = 100 / 100.0;
		$out = $ponr - $calc;
		$valor_semi_final  = $valor_finalT / $out;
		$valor_final = $valor_semi_final; 
		  
		echo floor($valor_final);
		
	}elseif($parc == 10){
		$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5;
		$ponr = 100 / 100.0;
		$out = $ponr - $calc;
		$valor_semi_final  = $valor_finalT / $out;
		$valor_final = $valor_semi_final; 
		  
		echo floor($valor_final);
		
	}elseif($parc == 11){
		$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5;
		$ponr = 100 / 100.0;
		$out = $ponr - $calc;
		$valor_semi_final  = $valor_finalT / $out;
		$valor_final = $valor_semi_final; 
		  
		echo floor($valor_final);
		
	}elseif($parc == 12){
		$calc = $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5 + $percentual5;
		$ponr = 100 / 100.0;
		$out = $ponr - $calc;
		$valor_semi_final  = $valor_finalT / $out;
		$valor_final = $valor_semi_final; 
		  
		echo floor($valor_final);
		
	}
	
*/

retorno.js

$(function(){
  var form = $('form[name=formP]');
  var radio = $('input[name=parcelas]');
  var parc;


  radio.change(function(){
    parc = $(this).val();
 });

form.submit(function(){
    var btn = $('.btn_calc');
    $.ajax({
      url: 'admin/php/simular.php',
      type: 'POST',
      data: form.serialize(),
      dataType: 'json',
      beforeSend: function(){
        btn.val('Carregando..');
      },
      success: function(data){
        var valorTotal = parseFloat(data.outvalor);
        var valorParcelado = parseFloat(data.valor) / parc;
       
        //var n = valorParcelado.toFixed(2);
        //n = n.replace('.', ',');
        //n = parseFloat(n);
        
        $('.numParcelas').text(parc);
        if(data.valorReal == '10.000,00'){
          $('.tarifaDebitar').text('R$ '+valorTotal+'0,00');
        }else{
          $('.tarifaDebitar').text('R$ '+valorTotal+',00');
        }
        $('.valorParcelas').text("R$ "+data.valorparc);
        btn.val('Calcular');
      }
    });
    return false;
  });

});

Compartilhar este post


Link para o post
Compartilhar em outros sites

O mais provável é que o número inicial esteja em um formato inválido, você tem certeza que o número está com os centavos sendo separados por ponto e sem separador de milhar, exemplo: 12500.00 em vez de 12.500,00

Compartilhar este post


Link para o post
Compartilhar em outros sites

O mais provável é que o número inicial esteja em um formato inválido, você tem certeza que o número está com os centavos sendo separados por ponto e sem separador de milhar, exemplo: 12500.00 em vez de 12.500,00

quando ele vai para o Floor e assim 12370

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.