If you are going to cast a variable, you’re most likely doing what’s known as a downcast. This means that you’re taking the Object and casting it into a more “specific” type of Object. Here’s an example:
Object aSentenceObject = 'This is just a regular sentence';
String aSentenceString = (String)aSentenceObject;
also you can use "upcast"
String aSentenceString = 'This is just another regular sentence';
Object aSentenceObject = (Object)aSentenceString;
as you can see from example, for doing casting you have to have inheritance between classes. Double and String don't have such inheritance.
use Double.valueOf method
line.put(targetField, Double.valueOf(fieldValue));