Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Quantidade de casas decimais exibidas

Segue minha resolução juntamente com a resolução proposta (acabei não criando um Java Class, então desconsiderem qualquer nome diferente)

public class Soma {
    public static void main(String[] args) {
        double valorEmDolares = 20.50;
        double cambio = 4.94;
        double valorEmReais= valorEmDolares * cambio;
        System.out.println (valorEmReais);


         double valorEmDolaress = 100.50;
         double taxaDeConversao = 4.94;
         double valorEmReaiss = valorEmDolaress * taxaDeConversao;
         System.out.println("O valor em reais é: " + valorEmReaiss);
         }
   }

Resultado:

101.27000000000001
O valor em reais é: 496.47

Sei que existem meios para formatar esse resultado para ser exibido com somente 2 casas decimais após a vírgula. Alterei o 20.50 para 200.50 e o resultado ficou com 2 casas após a virgula, como na resolução proposta. A dúvida é, existe alguma varíavel que iria exibir somente 2 casas após a vírgula, independente do falar ser 2.50, 20.50 ou 200.50?

1 resposta
solução!

Bom dia!

O java tem um padrão que te ajuda na formatação de valores.

A classe NumberFormat, junto com Locale, pode te ajudar nisso.

Nem todos os locais estão pré-definidos por padrão. nada que nos impeça de resolver.

Segue um simples código abaixo que pode te ajudar com isso:

import java.text.NumberFormat;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        double valor = 100.56;
        //Para a formatar para Dolar Americano, faremos o seguinte:
        String eua = NumberFormat.getCurrencyInstance(Locale.US).format(valor);
        String franca = NumberFormat.getCurrencyInstance(Locale.FRANCE).format(valor);
        String canada = NumberFormat.getCurrencyInstance(Locale.CANADA).format(valor);

        /*
            Locale(String idioma, String pais), onde:
            String idioma — receberá a sigla do idioma de acordo com a ISO-639.
            String pais — receberá a sigla do país.
        */
        Locale localBrasil = new Locale("pt", "BR");

        String brasil = NumberFormat.getCurrencyInstance(localBrasil).format(valor);

        System.out.println(eua);
        System.out.println(franca);
        System.out.println(canada);
        System.out.println(brasil);
    }
}

Mais informações em: https://medium.com/@vanribeiro.dev/formata%C3%A7%C3%A3o-de-moedas-com-java-d2f9e617ad56

Espero ter ajudado!

Se sua dúvida foi sanada, marque este tópico como resolvido. Assim, mais pessoas poderão ter acesso à esta informação.

Bons estudos!