Ir para conteúdo

POWERED BY:

Arquivado

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

pulao

[Resolvido] str_replace

Recommended Posts

opa pessoal td certo?

tenho uma duvida, estou passando um valor dessa maneira 36,50 para ser multiplcado e receber o valor da mesma forma mais ou menos assim 365,00 ou 3.562,00

estou usando o str_replace assim str_replace(".",",",$total) e $total=number_format($total,2,'.','')

 

queria saber o que estou fazendo de errado pq o resultado nao verifica as casas depois da virgula e me retorna um valor inteiro sempre...

 

desde ja agradeço

grato pela atenção moçada !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao precisa do str_replace() nesse caso.

Se for assim:

 

$valor = 25.00 * 2.60;
$valorFor = number_format($valor, 2, '.', ',');
echo $valorFor;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hmm...

Nesse caso, existe um campo onde o usuario digita os valores para efetuar a operação certo?

 

Se for assim, a notação brasileira para valores é 1.234,56.

 

Faz assim:

$valor1=$_GET['valor1']; //Pega o valor digitado no campo valor1
$valor1=$_GET['valor2']; //Pega o valor digitado no campo valor2

$valor1=str_replace(".", "", $valor1); //Onde houver ponto ele coloca um espaço vazio. Não coloque aspas abertas (" "), senão da errado.
$valor2=str_replace(".", "", $valor2); //Onde houver ponto ele coloca um espaço vazio. Não coloque aspas abertas (" "), senão da errado.

$valor1=explode(",", $valor1); //Com isso você separa as casas decimais.
$valor2=explode(",", $valor2); //Com isso você separa as casas decimais.

$valor1="$valor1[0].$valor1[1]"; //Junte novamente colocando um ponto entre as casas decimais. Só assim o PHP realizará a operação.
$valor2="$valor2[0].$valor2[1]"; //Junte novamente colocando um ponto entre as casas decimais. Só assim o PHP realizará a operação.

$total=$valor1 (operação) $valor2;
$total=number_format($total, 2, ".", ",");

Bom, a rotina é chata, mas comigo funcionou...^^

 

Tenta ai e posta denovo, se alguem tiver outra forma posta ai tmb...

 

Abraço!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao precisa do str_replace() nesse caso.

Se for assim:

 

$valor = 25.00 * 2.60;
$valorFor = number_format($valor, 2, '.', ',');
echo $valorFor;

 

o calculo é simples dessa forma, $valor=25.60*5;

pra esse resultado vai sair tipo 300.50 sei la chutei o resultado, ou 3.650,00 ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse calculo dá 128, 00 com a função number_format(), você testou ?

 

sim testei

o bloco ta dessa forma

$totalFor=$qtd_atual*$valor_compra;

$total=number_format($totalFor,2,'.','');

echo"$total"; /* so pra testar o reultado

nesse caso valor_compra recebe um numero dessa forma 36,40 e qtd_atual recebe 4 meu resultado ta sendo 140, sendo que seria 145,60 na esta verificando os numero depois da virgula

ja percebi que tenho que tratar a string 36,40 seria um explode e depois o number_format????

Compartilhar este post


Link para o post
Compartilhar em outros sites


(float)$totalFor = $qtd_atual * $valor_compra;

$total = number_format($totalFor, 2, '.', ',');

echo $total;

Compartilhar este post


Link para o post
Compartilhar em outros sites

(float)$totalFor = $qtd_atual * $valor_compra;
$total = number_format($totalFor, 2, '.', ',');
echo $total;

 

Resolvido

o calculo ficou na medida certa

dessa forma mto obrigado segue o codigo para qualquer duvida seguint...

 

$valor_compra=str_replace(".","",$valor_compra);

$valor_compra=explode(",",$valor_compra);

$valor_compra="$valor_compra[0].$valor_compra[1]";

$totalFor=$qtd_atual*$valor_compra;

$total=number_format($totalFor,2,".",",");

formato padrao !

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.