Opa no caso é porque você está lendo como inteiro 
	 
 
package exercicios;
import java.util.Scanner;
public class ValoresDeCarros {
	public static void main(String[] args) {
	Scanner scanner = new Scanner(System.in);
	double valorTabela;
	System.out.println("Digite o valor de tabela do carro:");
	valorTabela = scanner.nextDouble();
	double resultadoDesconto = (valorTabela*20)/100;
	double resultadoPagamento = valorTabela-resultadoDesconto;
	System.out.println("O valor do desconto será: R$" + resultadoDesconto);
	System.out.println("O valor e a ser pago é: R$" + resultadoPagamento);
}
}
	 
 
	Só que a leitura denpederá do Locale se estiver em português vai ler valores como 19567,34  se estiver em inglês usará o ponto 19567.34  
	 
 
package exercicios;
import java.util.Scanner;
import java.util.Locale;
public class ValoresDeCarros {
    public static void main(String[] args) {
        
    
        Scanner scanner = new Scanner(System.in);
        //Confugurando para ler com vírgula
        scanner.useLocale(new Locale("pt","BR"));
        double valorTabela;
        
        System.out.println("Digite o valor de tabela do carro:");
        valorTabela = scanner.nextDouble();
               
        double resultadoDesconto = (valorTabela*20)/100;
        double resultadoPagamento = valorTabela-resultadoDesconto;
                
        System.out.println("O valor do desconto será: R$" + resultadoDesconto);
        System.out.println("O valor e a ser pago é: R$" +  resultadoPagamento);
                
    }
       
}
	Se você quiser que os valores impressos também sejam no formato com vírgula pode usar um formatter http://www.guj.com.br/t/formatacao-de-valores-monetarios/227203/2