Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com number_format


Murilo Cabral

Pergunta

Olá amigos não consigo que os valores dos produtos cadastrados, fiquem como estão registrados no BD.

Exemplo.

Uma geladeira vale R$ 1.250,53, mas no carrinho de compras aparece como 1,25, e gostaria que aparecesse 1.250,53, incluindo os centavos.

abaixo Código do number_format.

$prod = $carrinho[$i]->produto;
$precof = number_format($prod->preço, 2, ',', '.');
$subtotal = $carrinho[$i]->quantidade * $prod->preço;
$subtotalf = number_format($subtotal, 2, ',', '.');
$total = $total + $subtotal;
$carrinhoTR.="<tr>
<td> &nbsp;" . $prod->titulo . "<input type='hidden' name='cod[]'
value='" . $prod->codigo . "' /></td>
<td align='center'> <input type='text' name='quant[]'
value='" . $carrinho[$i]->quantidade . "' size=2 maxlength=3 />
</td>
<td align='right'>" . $precof . " &nbsp; </td>
<td align='right'>" . $subtotalf . "&nbsp; </td>
</tr>";
}
$total = number_format($total, 2, ',', '.');
espero que isso possa ajudar a descobrir como faço para manter o valor que esta cadastrado no BD.

Desde já meus agradecimentos.
Murilo Cabral
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Como que está salvo na BD? Pontos flutuantes?

de qualquer maneira, eu utiliza está função para formatar os valores Reais...

/** 
     * Função para formatar numeros Floats em Reais
     */ 
	public function formataReal($numero)
		{
			if(strpos($numero,'.')!='')
			{
				   $var=explode('.',$numero);
				   if(strlen($var[0])==4)
				   {
					 $parte1=substr($var[0],0,1);
					 $parte2=substr($var[0],1,3);
					 if(strlen($var[1])<2)
					 {
						$formatado=$parte1.'.'.$parte2.','.$var[1].'0';
					 }else
					 {
						$formatado=$parte1.'.'.$parte2.','.$var[1];
					 }
				   }
				   elseif(strlen($var[0])==5)
				   {
					 $parte1=substr($var[0],0,2);
					 $parte2=substr($var[0],2,3);
					 if(strlen($var[1])<2)
					 {
						$formatado=$parte1.'.'.$parte2.','.$var[1].'0';
					 }
					 else
					 {
						$formatado=$parte1.'.'.$parte2.','.$var[1];
					 }
				   }
				   elseif(strlen($var[0])==6)
				   {
					 $parte1=substr($var[0],0,3);
					 $parte2=substr($var[0],3,3);
					 if(strlen($var[1])<2)
					 {
						$formatado=$parte1.'.'.$parte2.','.$var[1].'0';
					 }
					 else
					 {
						$formatado=$parte1.'.'.$parte2.','.$var[1];
					 }
				   }
				   elseif(strlen($var[0])==7)
				   {
					 $parte1=substr($var[0],0,1);
					 $parte2=substr($var[0],1,3);
					 $parte3=substr($var[0],4,3);
					 if(strlen($var[1])<2)
					 {
						$formatado=$parte1.'.'.$parte2.'.'.$parte3.','.$var[1].'0';
					 }
					 else
					 {
					 $formatado=$parte1.'.'.$parte2.'.'.$parte3.','.$var[1];
					 }
				   }
				   elseif(strlen($var[0])==8)
				   {
					 $parte1=substr($var[0],0,2);
					 $parte2=substr($var[0],2,3);
					 $parte3=substr($var[0],5,3);
					 if(strlen($var[1])<2){
					 $formatado=$parte1.'.'.$parte2.'.'.$parte3.','.$var[1].'0';
					 }else{
					 $formatado=$parte1.'.'.$parte2.'.'.$parte3.','.$var[1];
					 }
				   }
				   elseif(strlen($var[0])==9)
				   {
					 $parte1=substr($var[0],0,3);
					 $parte2=substr($var[0],3,3);
					 $parte3=substr($var[0],6,3);
					 if(strlen($var[1])<2)
					 {
						$formatado=$parte1.'.'.$parte2.'.'.$parte3.','.$var[1].'0';
					 }
					 else
					 {
						$formatado=$parte1.'.'.$parte2.'.'.$parte3.','.$var[1];
					 }
				   }
				   elseif(strlen($var[0])==10)
				   {
					 $parte1=substr($var[0],0,1);
					 $parte2=substr($var[0],1,3);
					 $parte3=substr($var[0],4,3);
					 $parte4=substr($var[0],7,3);
					 if(strlen($var[1])<2)
					 {
						$formatado=$parte1.'.'.$parte2.'.'.$parte3.'.'.$parte4.','.$var[1].'0';
					 }
					 else
					 {
						$formatado=$parte1.'.'.$parte2.'.'.$parte3.'.'.$parte4.','.$var[1];
					 }
				   }
				   else
				   {
					 if(strlen($var[1])<2)
					 {
						 $formatado=$var[0].','.$var[1].'0';
					 }
					 else
					 {
						 $formatado=$var[0].','.$var[1];
					 }
				   }
			  }
			  else
			  {
				 $var=$numero;
			   if(strlen($var)==4)
			   {
				 $parte1=substr($var,0,1);
				 $parte2=substr($var,1,3);
				 $formatado=$parte1.'.'.$parte2.','.'00';
			   }
			   elseif(strlen($var)==5)
			   {
				 $parte1=substr($var,0,2);
				 $parte2=substr($var,2,3);
				 $formatado=$parte1.'.'.$parte2.','.'00';
			   }
			   elseif(strlen($var)==6)
			   {
				 $parte1=substr($var,0,3);
				 $parte2=substr($var,3,3);
				 $formatado=$parte1.'.'.$parte2.','.'00';
			   }
			   elseif(strlen($var)==7)
			   {
				 $parte1=substr($var,0,1);
				 $parte2=substr($var,1,3);
				 $parte3=substr($var,4,3);
				 $formatado=$parte1.'.'.$parte2.'.'.$parte3.','.'00';
			   }
			   elseif(strlen($var)==8)
			   {
				 $parte1=substr($var,0,2);
				 $parte2=substr($var,2,3);
				 $parte3=substr($var,5,3);
				 $formatado=$parte1.'.'.$parte2.'.'.$parte3.','.'00';
			   }
			   elseif(strlen($var)==9)
			   {
				 $parte1=substr($var,0,3);
				 $parte2=substr($var,3,3);
				 $parte3=substr($var,6,3);
				 $formatado=$parte1.'.'.$parte2.'.'.$parte3.','.'00';
			   }
			   elseif(strlen($var)==10)
			   {
				 $parte1=substr($var,0,1);
				 $parte2=substr($var,1,3);
				 $parte3=substr($var,4,3);
				 $parte4=substr($var,7,3);
				 $formatado=$parte1.'.'.$parte2.'.'.$parte3.'.'.$parte4.','.'00';
			   }
			   else
			   {
				 $formatado=$var.','.'00';
			   }
			}
			  return $formatado." ";
		}
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...