Jump to content


Photo

Arredondamento


  • Faça o login para participar
3 replies to this topic

#1 mizani

mizani

    12 Horas

  • Usuários
  • 124 posts
  • Sexo:Não informado

Posted 24/10/2009, 13:43

Galera,
Boa Tarde.

Tenho um valor de 59.49.

Gostaria que todos valores relacionados, por exemplo: 20.19, 41,89, fossem arredondados para:

59.50
20.20
41.90

Como é possível? :huh: :blink:

Obrigado,
'-. http://www.mizani.com.br .-'
WebDesigner
'- http://www.alweb.com.br .-'
WebHost

#2 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 24/10/2009, 13:49

Hmm...

O que você espera ao arredondar 59.44? E 59.45? E 59.46?

[]’s Até mais

#3 mizani

mizani

    12 Horas

  • Usuários
  • 124 posts
  • Sexo:Não informado

Posted 24/10/2009, 13:51

Então, meu problema é com os diabos perto do 5 e do 10..aehuhaeuhae
sempre arredondar para mais...

50.44 -> 50.45
50.42 -> 50.45
50.48 -> 50.50

Alguma idéia?
'-. http://www.mizani.com.br .-'
WebDesigner
'- http://www.alweb.com.br .-'
WebHost

#4 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 24/10/2009, 14:07

Certo. Faça assim:

<?php

function roundTo($value, $precision)
{
	return ceil($value / $precision) * $precision;
}

var_dump(roundTo(50.44, 0.05)); // float(50.45)
var_dump(roundTo(50.42, 0.05)); // float(50.45)
var_dump(roundTo(50.50, 0.05)); // float(50.5)

?>
Para exibição, formate com printf()/sprintf() ou number_format(). ;-)

[]’sAté mais




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq