TOPIC

qual o resultado certo pro URI?

rorlando asked 2 years ago

Olá! fiz o codigo do exercicio 1009, na compilação o resultado sai correto, mas o uri não está aceitando. Segue o codigo

 String nome;
     float sF;
     float tv;

    Scanner ler = new Scanner(System.in);
    nome= ler.next();
  sF= ler.nextFloat();
  tv= ler.nextFloat();

    DecimalFormat formatador = new DecimalFormat("0.##");

  System.out.println("TOTAL = R$ " + formatador.format(sF + ((tv*15)/100)));

Remember not post solutions. Your post may be reviewed by our moderators.

  • GabrielMartins replied 2 years ago

    O problema diz que as variáveis de entrada são do tipo Double. E acho que seria mais prático usar a formatação do printf, não?

    System.out.printf("TOTAL = R$ %.2f\n", resultado);

  • Instagram-pedro_leocir replied 2 years ago

    Bom dia Ricardo, tudo bem? Fiz exatamente como o Gabriel falou e deu certo aqui. System.out.printf("TOTAL = R$ %.2f\n", resultado);

    MOD
  • GabrielMartins replied 2 years ago

    Usando double não vai ter esse problema de arredondamento do printf não, pode usar ele tranquilo.

    Mas se quiser ficar no format, muda o formato para DecimalFormat("0.00"); porque esse atual está suprimindo zeros em alguns casos.

  • rrosa23 replied 2 years ago

    Pelo que pude ver, esse problema com o DecimalFormat vai aparecer ou não dependendo do Locale ao qual está setado o seu computador. No meu caso, ele estava pegando algum locale diferente por padrão, daí precisei setar o NumebrFormat como Locale.getDefault(). Aí ele colocou ponto em vez de vírgula. O Locale também pode ser usado pra escolher uma formatação de algum país, como Locale.CANADA, Locale.FRANCE, etc.

    Pra funcionar, tive que fazer o seguinte:

    NumberFormat NF = NumberFormat.getNumberInstance(Locale.getDefault());
    DecimalFormat DF = (DecimalFormat) NF;
    DF.applyPattern("###.##");
    total = Double.parseDouble(DF.format(total));
  • rorlando replied 2 years ago

    GABRIEL MARTINS Muito obrigado por me alertar do float, mas usando "System.out.printf("TOTAL = R$ %.2f\n", resultado);" o valor é arredondado, e alguns casos o resultado sai diferente, usando " DecimalFormat formatador = new DecimalFormat("0.##");" consegui apresentar como o problema propõe, mas ainda não está certo