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?
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
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…