Scanner - Erro usando nextDouble()

Olá pessoal
Estou fazendo um exercício básico e o mesmo está me retornando um erro, quando uso tipo double.
no caso quando digito o salário um valor inteiro, ele calcula correto, o problema é quando digito um salário fracionado, como
por exemplo: 850,75. Se digito com vírgula, ele aparece em branco, mas não dá erro.
Não deveria estar certo? Mesmo digitando com o ponto (850.75) não dá certo, ele causa uma exceção, que no caso não estou tratando.
Tem alguma coisa a ver com a formatação da saída?

import java.util.Scanner;

public class SalarioFuncionario {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String nome = "";
        double salario = 0.0;
        double totSalario = 0.0;
        double acrescimo = 0.0;
        System.out.println("Qual o nome do Funcionário?");
        nome = sc.next();
        System.out.println("Entre com valor do Salário");
        salario = sc.nextDouble();
        
        if (salario <= 150){
            acrescimo = salario * 0.25;
            totSalario = salario + acrescimo;
        }
        System.out.println("Nome: "+nome);
        System.out.println("Salário: "+totSalario);
        }
    }

[color=darkred]Erro:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:840)
at java.util.Scanner.next(Scanner.java:1461)
at java.util.Scanner.nextDouble(Scanner.java:2387)
at SalarioFuncionario.main(SalarioFuncionario.java:13)
Java Result: 1[/color]

Após ler alguns post aquí mesmo no GUJ, verifiquei que alguns tem dúvidas semelhantes, uns falam pra usar o Locale, tentei, mas agora dá outro erro:

[color=darkred]Exception in thread “main” java.lang.UnsupportedOperationException: Not yet implemented
at input.useLocale(input.java:16)
at SalarioFuncionario.main(SalarioFuncionario.java:7)
Java Result: 1[/color]

Alguém pode me ajudar?

So pra fazer um teste. Tente pegar primeiro o valor double e depois a string.

Erro:
Exception in thread “main” java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:840)
at java.util.Scanner.next(Scanner.java:1461)
at java.util.Scanner.nextDouble(Scanner.java:2387)
at SalarioFuncionario.main(SalarioFuncionario.java:13)
Java Result: 1

Tenta escrever o número com ponto em vez de vírgula… exemplo:

Escreva 80.90 em vez de 80,90

Outra coisa, sempre que uso a classe Scanner eu leio o dado como String (através do método nextLine() ) e depois o converto… tenta ver se isso te ajuda!

		Scanner sc = new Scanner(System.in);
		System.out.print("Digite o valor: ");
		double valor = Double.parseDouble(sc.nextLine());

ok?

Olá, obrigado por ter respondido.
Fiz conforme falou, mas mesmo assim, ele continua dando erro, agora ele nem deixa digitar os valores.
Segue erro:

[color=red]Exception in thread “main” java.lang.NumberFormatException: empty String
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:994)
at java.lang.Double.parseDouble(Double.java:510)
at SalarioFuncionario.main(SalarioFuncionario.java:13)
Java Result: 1[/color]

Exception in thread “main” java.lang.NumberFormatException: empty String

Tinha que limpar o buffer… utiliza a primeira dica que dei… escrever com “.” em vez de “,”… aqui funcionou!

Também fiz assim e não dá erro, mas o valor fica zerado:

[code]
import java.util.Scanner;

public class SalarioFuncionario {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String nome = “”;
String tempSal = “”;
double salario = 0.0;
double totSalario = 0.0;
double acrescimo = 0.0;
System.out.println(“Qual o nome do Funcionário?”);
nome = sc.next();
System.out.println(“Entre com valor do Salário”);
tempSal = sc.next();
salario = Double.parseDouble(tempSal);
if (salario <= 150){
acrescimo = salario * 0.25;
totSalario = salario + acrescimo;
}
System.out.println("Nome: "+nome);
System.out.println("Salário: "+totSalario);
}
}[/code]

[color=blue]Resultado:
run:
Qual o nome do Funcionário?
Ronimarcos
Entre com valor do Salário
850.75
Nome: Ronimarcos
Salário: 0.0
CONSTRUÍDO COM SUCESSO (tempo total: 8 segundos)[/color]

[code]public class SalarioFuncionario {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String nome = “”;

    double salario = 0.0;  
    double totSalario = 0.0;  
    double acrescimo = 0.0;  
    System.out.println("Qual o nome do Funcionário?");  
    nome = sc.nextLine();  //troque para nextLine
    System.out.println("Entre com valor do Salário");  
    salario = Double.parseDouble(sc.nextLine());   //faça assim
    
    if (salario <= 150){  
        acrescimo = salario * 0.25;  
        totSalario = salario + acrescimo;  
    }  
    System.out.println("Nome: "+nome);  
    System.out.println("Salário: "+totSalario);  
    }  

}[/code]

ou

[code]public class SalarioFuncionario {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String nome = “”;

    double salario = 0.0;  
    double totSalario = 0.0;  
    double acrescimo = 0.0;  
    System.out.println("Qual o nome do Funcionário?");  
    nome = sc.nextLine();  //troque para nextLine
    System.out.println("Entre com valor do Salário");  
    salario = sc.nextDouble();   //ou assim
    
    if (salario <= 150){  
        acrescimo = salario * 0.25;  
        totSalario = salario + acrescimo;  
    }  
    System.out.println("Nome: "+nome);  
    System.out.println("Salário: "+totSalario);  
    }  

}[/code]

Putz, erro meu, desculpe.
Testei com o valor acima da condição.
Muito obrigado renamed.
Grande abraço.