Arredondar para exatamente 2 casas decimais  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
SadNess
JavaTeenager
[Avatar]

Membro desde: 30/03/2006 16:51:25
Mensagens: 197
Offline

galera
seguinte
tenho a seguinte formula pra arredondar um double pra 2 casas decimais


ta tudo certo, o problema é que ele arredonda o valor pra 3.0, sendo que eu queria que fose 3.00
é possível imprimir este "3.00"? como?
neohacker
Virtual Machine Man
[Avatar]

Membro desde: 30/10/2006 15:23:14
Mensagens: 576
Localização: Santo André
Offline

amigo não sei se isso vc suprir o seu problema, mas vc sabe u pouco de C??
porque da pra fazer isso na hora da impressão deste modo:



Testa dessa maneira e ve se da certo, ok

vlw

http//www.tecnologiaims.blogspot.com

↑ Grab this Headline Animator

http://www.imstechnology.blogspot.com
[Email] [WWW]
fharley
What is classpath?

Membro desde: 06/07/2005 15:43:49
Mensagens: 5
Localização: Fortaleza
Offline

DecimalFormat decimalFormat = new DecimalFormat();
decimalFormat.setMinimumFractionDigits(2);
System.out.println(decimalFormat.format(r));

-------------------------------------
[]'s Francisco Hárley
melges
Thread.start()

Membro desde: 01/10/2006 14:06:18
Mensagens: 31
Offline

Cara a partir da versão 5, o java passou a ter um recurso bastante interessante, muito comum para aqueles que programam em c, que é o método printf. Se vc pesquisar alguma coisa sobre este método poderá sanar sua duvida
javaMyLife
Entusiasta Java

Membro desde: 08/10/2009 15:05:06
Mensagens: 15
Offline

ae galera blz !

sei que esse post esta velho porem já cai nessa duvida e cais neste post consegui resolver e estou postando uma solução
segura para arredondamento para matematica finaceira sem margem de erro !


String Converte;

float vlr = (float) vl1;
BigDecimal big = new BigDecimal(vlr);
big = big.setScale(3, BigDecimal.ROUND_HALF_EVEN);
converte = String.valueOf(big);
int w = converte.length();
w =(w-1);
char r = converte.charAt(w);
String p = ""+r;
int it = Integer.parseInt(p);


/*caso a terceira casa seja menor que 5 corte a 3 casa depois da virgula*/
if(it < 5){
frase = new StringBuffer(converte);
converte = ""+frase.deleteCharAt(w);}

/* se a teceira casa for maior que 4 joga para DecimalFormat que ele arredonada automatico para cima sem a terceira casa...

else {
decimal = new DecimalFormat( "0.00" );
vl_conv = Double.parseDouble(converte);
converte = (decimal.format(vl_conv));
converte = converte.replaceAll(",",".");}


This message was edited 3 times. Last update was at 16/11/2009 11:55:37

 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team