A double will have a decimal point in it, which isn't going to be a valid String representation of an integer. If you needed to convert a double into an int by way of a String, then you'd want to convert the double into an int first before converting to a String:
String s = ((int) w) + ""; int i = Integer.parseInt(s);
But you're doing a lot of slow, inefficient, and unnecessary conversions here. I really can't tell what you're trying to accomplish, exactly, but note that, for example, if you have an Integer object, you can use its "intValue()" method to make it into an int, without creating a String and parsing it:
Integer g = (Integer)POI[m].elementAt(n); int f = g.intValue();
And you can make an Integer out of a double with help from a cast:
double w = f * POIBottom[m]; Integer I = new Integer((int) w);
The techniques I've shown here are much faster and more efficient, and can't give any runtime exceptions.