Resolvido! Reduzir quantidade de casas decimais

4 respostas
Dani_RS

Oi, pessoal!

Esse é o código:

if(valor - (int)valor == 0)
        {
            System.out.println("R$ " + (int)valor + ",00");
        }
        
        else
        
            System.out.println("R$ " + (int)valor + "," + ((valor - (int)valor)*100));
[code]

Ok, funciona... 
O problema é que ao exibir na tela, aparece assim:

[code]
R$ 157,00
R$ 237,99.00000000000091
R$ 999,00
R$ 53,53.000000000000114

Alguém sabe me dizer o que posso fazer para os números que vem depois do ponto sumirem?

Obrigada a quem puder ajudar!

4 Respostas

Dani_RS

Ok, já descobri!

Basta colocar um “int” antes da fórmula. :wink:

if(valor - (int)valor == 0)
        {
            System.out.println("R$ " + (int)valor + ",00");
        }
        
        else
        
            System.out.println("R$ " + (int)valor + "," + (int)((valor - (int)valor)*100));
italo.vendrameto

da uma olhada nesse post

http://www.guj.com.br/posts/list/1194.java

e da mais uma lida sobre NumberFormat ou DecimalFormat que resolve seu problema sem ter que fazer gambi com if e coisa do tipo

Adriano_Almeida
System.out.printf("%.2f", valor);
eros.stein

Acredito que a “melhor” forma seria usar NumberFormat.

NumberFormat formatador = NumberFormat.getNumberInstance(); formatador.setMaximumFractionDigits(2); formatador.format(suaVariavel);

Criado 17 de outubro de 2007
Ultima resposta 17 de out. de 2007
Respostas 4
Participantes 4