Qual é a maneira mais rápida de verificar se uma string é um número?

Qual é a maneira mais rápida de verificar se uma string como "2.4393" ou "2" é válida - ambas podem ser representadas por uma dupla - enquanto as strings "2.343". ou "ab.34" não são? Em particular, eu quero ser capaz de ler qualquer string e, seposso seja duplo, atribua uma variável dupla a ele e, se não puder ser um duplo (no caso de ser uma palavra ou apenas uma entrada inválida), uma mensagem de erro será exibida.