Ir para conteúdo

POWERED BY:

Arquivado

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

Ronny Wdson

Arredondamento

Recommended Posts

Olá galera...

Sou iniciante em PHP e estou com uma pequena dificuldade em apresentar um resultado com somente uma casa decimal e sem arredondar.

Ex: 6.999999999 arredondar para 6.9

5.712354 arredondar para 5.7

 

Alguém poderia me ajudar???

 

 

Agradeço desde já

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ronny, seja bem-vindo ao fórum http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Utilize o fórum principal para as dúvidas. Aproveite e dê uma lida nas regras do fórum.

 

Bons estudos ;)

Movido: Artigos, Dicas... http://forum.imasters.com.br/public/style_emoticons/default/seta.gif PHP

 

Anderson Mello

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja se funciona

sprintf('%.1f', '5.777');
Obrigado pelo interesse em me ajudar colega...Relmente a sua dica funcionou... mas eu queria uma forma de omitir a exibição das casas decimais sem acontecer o arredondamento.Por exemplo:5,98788888888 mostrar somente a primeira casa decimal sem arredondar, ficando assim 5,9Desde já, Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim :

 

$numero = "45.005,989550467789";echo sem_arredondar($numero, 2) . "<br />";$numero = "5,989550467789";echo sem_arredondar($numero, 1) . "<br />";function sem_arredondar ( $valor = 0 , $decimal = 2 ) {		$decimal = !(int)$decimal	?	2	:	$decimal; return $retorno = preg_replace("/^.*?[0]*([\d\.]+)(([\,][\d]{0,$decimal})([\d]*))?.*?$/", "$1$3",  $valor );}

o autor da regex é venimus777 at yahoo dot com.. retirado do site www.php.net

 

eu apenas fiz algumas pequenas alterações

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim :

 

$numero = "45.005,989550467789";echo sem_arredondar($numero, 2) . "<br />";$numero = "5,989550467789";echo sem_arredondar($numero, 1) . "<br />";function sem_arredondar ( $valor = 0 , $decimal = 2 ) {		$decimal = !(int)$decimal	?	2	:	$decimal; return $retorno = preg_replace("/^.*?[0]*([\d\.]+)(([\,][\d]{0,$decimal})([\d]*))?.*?$/", "$1$3",  $valor );}

o autor da regex é venimus777 at yahoo dot com.. retirado do site www.php.net

 

eu apenas fiz algumas pequenas alterações

Obrigado pela resposta...

Mas... ainda não está funcionando corretamente.

 

Essa instrução que você me passou só faz o procedimento com valores que tem a virgula como sinal que separa as casas decimais, portanto ela só funciona no seguinte caso: 5,9999 para 5,9.

Eu preciso converter 5.999 para 5,9 por exemplo.

Com o ponto sendo o separador para casas decimais ou centavos.

Se puder me ajudar???

 

 

Desde já

Agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim :

 

<?php$numero = "1,798.69536";	/* 	Formato americano 	*/echo sem_arredondar($numero, 2, true ) . "<br />";$numero	= "5,989550467";	/* 	Formato brasileiro		*/echo sem_arredondar($numero, 2) . "<br />";function sem_arredondar ( $valor = 0 , $decimal = 2, $conveterRS = false ) {		$decimal = !(int)$decimal	?	2	:	$decimal;		if ( $conveterRS ) {				$valor	=	preg_replace('/\,/si' ,	'' , $valor );		$valor	=	preg_replace('/\./si' ,	',' , $valor );	}		$retorno = preg_replace("/^.*?[0]*([\d\.]+)(([\,][\d]{0,$decimal})([\d]*))?.*?$/", "$1$3",  $valor );	return $retorno;}?>

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.