Deixa eu ver se entendi … vc não quer o arredondamento?
Se for isso vc pode usar a classe BigDecimal
BigDecimal a = new BigDecimal("999999.99");
DecimalFormat format = new DecimalFormat("###,###.##");
System.out.println(format.format(a));
Se eu entendi errado desculpa ai …
ViniGodoy
Esse é um problema dos floats. Eles foram feitos para ter precisão científica, não monetária. Se os valores que você precisa devem ser precisos, o melhor é realmente usar um long.
Você pode ver essa dica no capítulo 7, item 31, do Effective Java, do Joshua Bloch.
Se puder, nunca use Float ou float, apenas double ou Double.
A precisão do float é muito pequena - 6 casas apenas - e você está tentando usar com 8 casas.
silva.fernandes
Leo, dá uma olhada pra ver se não é isso q vc ta precisando ...
importjava.text.DecimalFormat;importjava.util.Locale;/* * By Fabiano Fernandes */publicclassTesteDecimalFormat{publicstaticvoidmain(String[]args){Localelocale=Locale.getDefault();System.out.println("Verifica as configurações do seu S.O");System.out.println("Este Sistema Operacional "+"usa atualmente as seguintes "+"Configuracoes (Default):");System.out.println("Pais: "+locale.getDisplayCountry());System.out.println("Lingua/Teclado: "+locale.getDisplayLanguage()+" - "+locale.getDisplayName());System.out.println("");DecimalFormatformatador=newDecimalFormat();doublevalor1=235040.39;floatvalor2=-235040.55f;System.out.println("Numeros sem formatacao:");System.out.println("Valor 1 : "+valor1);System.out.println("Valor 2 : "+valor2);System.out.println();System.out.println("Numeros utilizando a formatacao Default:");System.out.println("Valor 1 : "+formatador.format(valor1));System.out.println("Valor 2 : "+formatador.format(valor2));System.out.println();System.out.println("Utilizando o Pattern: R$ 000,000.00;R$(000,000.00)");formatador.applyPattern("R$ 000,000.00;R$ (000,000.00)");System.out.println("Valor 1 : "+formatador.format(valor1));System.out.println("Valor 2 : "+formatador.format(valor2));//Aqui está entre parenteses pois é um número negativoif(args.length>0){Stringpattern="";for(inti=0;i<args.length;i++){pattern+=args[i]+" ";}pattern=pattern.trim();System.out.println("Utilizando o Pattern: "+pattern);try{formatador.applyPattern(pattern);System.out.println("Valor 1 : "+formatador.format(valor1));System.out.println("Valor 2 : "+formatador.format(valor2));}catch(IllegalArgumentExceptione){System.out.println("ERRO: Pattern invalido.");System.out.println(e.getMessage());}}}}
Espero q te ajude isso..
Falowww
T+
rafaelob
O que está ultima classe faz, realmente?! não entendi 100%
Att
C
clone_zealot
Por favor, não ressucite tópicos antigos… Este tópico morreu a quase 3 anos…
E sobre a classe: ela demonstra como utilizar as classes de Format, mostrando como é possível montar/alterar os patterns de formatação.