Números com pontos e virgulas estão quebrando o código

Boa tarde, to criando um algoritmo e ao colocar números com pontos e virgulas o algoritmo quebra, exemplo
5,26
5.26
E eu queria saber tambem como consigo dar continuidade á minha frase no System.out.print depois de fazer a conta com os operadores, grato.
ackage q2;

import java.util.Scanner;

public class Q2 {

public static void main(String[] args) {
    Scanner p110 = new Scanner(System.in);
    double x = 0;
    double y = 0;
    System.out.println("valor do litro: ");
    x = p110.nextInt();
    System.out.println("quantos R$ deseja abastecer: ");
    y = p110.nextInt();

    System.out.println("Deu exatamente: " + (x * y));
}

}

Boa tarde,

Neste caso você precisa usar a vírgula, pois é o padrão utilizado aqui no brasil.

Scanner p110 = new Scanner(System.in);
    double x, y = 0;
    System.out.println("valor do litro: ");
    x = p110.nextDouble();
    System.out.println("quantos R$ deseja abastecer: ");
    y = p110.nextDouble();

    System.out.println("Deu exatamente: " + (x * y));

Para você utilizar o ponto, você fazer o seguinte:

Scanner p110 = new Scanner(System.in).useLocale(Locale.US);
    double x, y = 0;
    System.out.println("valor do litro: ");
    x = p110.nextDouble();
    System.out.println("quantos R$ deseja abastecer: ");
    y = p110.nextDouble();

    System.out.println("Deu exatamente: " + (x * y));

E para seu código aceitar ambos ponto e vírgula, você pode fazer o seguinte:

Scanner p110 = new Scanner(System.in);
    String x, y;
    System.out.println("valor do litro: ");
    x = p110.next().replace(",", ".");
    System.out.println("quantos R$ deseja abastecer: ");
    y =  p110.next().replace(",", ".");

    System.out.println("Deu exatamente: " + (Double.parseDouble(x) * Double.parseDouble(y)));

Respondendo a sua pergunta sobre a continuidade na frase, sim é possível.
Você só precisa colocar o sinal de + após o cálculo.

Exemplo:

Scanner p110 = new Scanner(System.in);
    String x, y;
    System.out.println("valor do litro: ");
    x = p110.next().replace(",", ".");
    System.out.println("quantos R$ deseja abastecer: ");
    y =  p110.next().replace(",", ".");

    System.out.println("Deu exatamente: " + (Double.parseDouble(x) * Double.parseDouble(y)) + " reais.");

Se você está pegando o valor do litro e em seguida o valor em R$, acredito que você está querendo saber quantos litros vai dar o abastecimento. Neste caso você tem que dividir (y / x) e não multiplicar (x * y).

Scanner p110 = new Scanner(System.in);
    String x, y;
    System.out.println("valor do litro: ");
    x = p110.next().replace(",", ".");
    System.out.println("quantos R$ deseja abastecer: ");
    y =  p110.next().replace(",", ".");

    System.out.println("Deu exatamente: " + (Double.parseDouble(y) / Double.parseDouble(x)) + " litros.");

Você também vai precisar formatar o resultado, você pode fazer isso com o printf.

Exemplo:

Scanner p110 = new Scanner(System.in);
    String x, y;
    System.out.println("valor do litro: ");
    x = p110.next().replace(",", ".");
    System.out.println("quantos R$ deseja abastecer: ");
    y = p110.next().replace(",", ".");

    System.out.printf("Deu exatamente: %.2f", (Double.parseDouble(y) / Double.parseDouble(x)));
    System.out.println(" litros.");

Obrigado!! entendi perfeitamente.

1 curtida

Que ótimo! Bons estudos :wink: