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