victorwss 21 de nov. de 2008
Métodos para arrendondar:
java.lang.Math.round(float)
java.lang.Math.round(double)
Para arrendondar para xxx.0 e xxx.5, você pode fazer isso:public static float arredondar(float valor) {
return Math.round(valor * 2) / 2;
}
flaviotomazio 21 de nov. de 2008
Oi, tenta dar uma olhada em Math.ceil()
peczenyj 21 de nov. de 2008
teste assim:
Math.round(2.0*a)/2.0
Rafael_ap 21 de nov. de 2008
Você pode tentar fazer na raça, pegando o resto da divisão por 10 e conparando.
Ou pesquise alguma funcão Math que deve resolver seu problema.
ana.araujo 21 de nov. de 2008
ai colegas…
tive que fazer na raça e na coragem…
ficou um verdadeiro tanderket… rss
separei os valores - inteiro e fração, depois fiz um if() para logica.
double pesoUn = Double . parseDouble ( pesoUnitario . replaceAll ( "[,]" , "." )) * quantidade ;
double pesoInteiro = Math . floor ( pesoUn );
double pesoFracao = ( pesoUn - pesoInteiro );
double pesoTotal ;
double valorFrete ;
if ( pesoFracao > 0 && pesoFracao <= 0.5 ){
pesoFracao = 0.5 ;
} else {
pesoFracao = 1 ;
}
pesoTotal = ( pesoInteiro + pesoFracao );
pelo menos resolveu… rs…
sem erros…
Obrigado a todos…
victorwss 21 de nov. de 2008
ana.araujo:
ai colegas…
tive que fazer na raça e na coragem…
ficou um verdadeiro tanderket… rss
separei os valores - inteiro e fração, depois fiz um if() para logica.
double pesoUn = Double . parseDouble ( pesoUnitario . replaceAll ( "[,]" , "." )) * quantidade ;
double pesoInteiro = Math . floor ( pesoUn );
double pesoFracao = ( pesoUn - pesoInteiro );
double pesoTotal ;
double valorFrete ;
if ( pesoFracao > 0 && pesoFracao <= 0.5 ){
pesoFracao = 0.5 ;
} else {
pesoFracao = 1 ;
}
pesoTotal = ( pesoInteiro + pesoFracao );
pelo menos resolveu… rs…
sem erros…
Obrigado a todos…
Isso funciona para algum número como 9.001 por exemplo? Acho que não. E para números negativos?
proteus_adi 21 de nov. de 2008
Nussa…
Quanta solução…
:),
Pra mim, a classe Math já tem algumas funçõezinhas boas pra isso, como já citado ali o Math.ceil, que irá “arredondar pra cima”, digamos assim.
Tem outras legais na Math, como a Math.floor, a Math.round [essa todo mundo conhece… rs**], a Math.abs que retorna o valor absoluto[sem sinal], etc, etc, etc…
Se o objetivo for : Se os decimais passarem de 0, soma 1: use a Math.ceil
Giulliano 21 de nov. de 2008
Tenta trabalhar com BigDecimal
BigDecimal valor = BigDecimal . valueOf ( varialDouble );
valor . setScale ( 2 , RoundingMode . HALF_UP );
Giulliano 21 de nov. de 2008
Giulliano:
Tenta trabalhar com BigDecimal
BigDecimal valor = BigDecimal . valueOf ( varialDouble );
valor . setScale ( 2 , RoundingMode . HALF_UP );
no seu caso use
valor.setScale(2, RoundingMode.UP);