Ir para conteúdo

POWERED BY:

Arquivado

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

Alison_Melo

[Resolvido] Não soma oque está depois da virgula

Recommended Posts

Bom pessoal, eu aqui denovo, novamente, mais uma ves.

Meu problema, é que os dados que eu pego do banco, não somam oque está depois da virgula,

no bd esta como double 5,2

 

e o código:

<?php
session_start();
include "conect.php";






$mes   = $_REQUEST['mes']; 
$id    = $_SESSION['id']; 
$login = $_SESSION["login"];
$senha = $_SESSION["senha"];

	echo "<tr>";
		echo "<td>Descrição:</td>";
		echo "<td>quantidade:</td>";
		echo "<td>Valor Unitário:</td>";
		echo "<td>Valor Total:</td>";
		echo "<td>Data:</td>";
		echo "<td>Excluir</td>";
	echo "</tr>";

$lista = mysql_query("SELECT * FROM itens WHERE mes = $mes and id_user = $id  ORDER BY id desc");
	while( $ver=mysql_fetch_array($lista)){
	$id_n		= $ver['id'];
	$descricao  = $ver['descricao'];
	$quantidade = $ver['quantidade'];
	$valor_unit = $ver['valor_unit'];
	$valor_unit = str_replace(".",",",$valor_unit);
	$tipo       = $ver['tipo'];
	$data       = $ver['data'];
	$valor_total= "$quantidade * $valor_unit";

	echo "<tr>";
		echo "<td>$descricao</td>";<img src="images.jpg" />
		echo "<td>$quantidade $tipo </td>";
		echo "<td>R$ $valor_unit </td>";
		echo "<td>R$ " . $quantidade * $valor_unit . "</td>";
		echo "<td>$data</td>";
		echo "<td><a href='del.php?id=$id_n'><center><img src='lixeira.jpg'></center></td>";
	echo "</tr>";
}

?>

 

Reparem que no código, o resultado, seria a variavel $quantidade * $valor_unit, teria um meio deu fazer com que os dados sejam multiplicados, mesmo oque está depois da virgula ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara eu bati o olho nessa linha

 

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

 

Pra Somar/Subtrair/multiplicar/Dividir tem que estar com " . " e não " , "

 

ou o contrario, deu nó aqui na cabeça kkkkkkk

Compartilhar este post


Link para o post
Compartilhar em outros sites
$valor = '1.250,10';
   $valor = str_ireplace(".","",$valor); //remove o separador de milhares
   $valor = str_ireplace(",",".",$valor); //substitui a virgula por ponto
   $var1 = 4 * $valor;
   $var1 = number_format($var1, 2, ',', '.'); //converte de novo para numero com separador de milhares e virgula
   echo $var1;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente. PHP não soma as vírgulas. Você tem que fazer um STR replace para tirar a vírgula e passar para ponto, para assim fornecer as variáveis à operação

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simplificando ou não...

 

function dinheiro_de_br($valor) {
   	$valor = str_ireplace(".","",$valor);
       $valor = str_ireplace(",",".",$valor);
       return $valor;
   }

   function dinheiro_para_br($valor) {
   	$valor = number_format($valor, 2, ',', '.');
   	return $valor;
   }

   	//echo "<td>R$ " . $quantidade * $valor_unit . "</td>";
   	$valor_unit = $quantidade * dinheiro_de_br($valor_unit);
echo '<td>R$ ' . dinheiro_para_br($valor_unit) .'</td>'; 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valew pessoal, kk, desculpa a demora,

e o só tive q leva o str_replace pra baixo, kkk

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.