galera
seguinte
tenho a seguinte formula pra arredondar um double pra 2 casas decimais
double r = 3;
int decimalPlace = 2;
BigDecimal bd = new BigDecimal(r);
bd = bd.setScale(decimalPlace,BigDecimal.ROUND_HALF_UP);
r = bd.doubleValue();
System.out.println(r);
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?
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:
System.out.printf(%.2f", r);
Testa dessa maneira e ve se da certo, ok
vlw
M
melges
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
J
javaMyLife
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;
floatvlr=(float)vl1;BigDecimalbig=newBigDecimal(vlr);big=big.setScale(3,BigDecimal.ROUND_HALF_EVEN);converte=String.valueOf(big);intw=converte.length();w=(w-1);charr=converte.charAt(w);Stringp=""+r;intit=Integer.parseInt(p);/*caso a terceira casa seja menor que 5 corte a 3 casa depois da virgula*/if(it<5){frase=newStringBuffer(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…