Почему вы имеете дело с числовым значением в строковой переменной?
Поскольку Java является языком со строгой типизацией, вам, вероятно, будет проще преобразовать его в число с плавающей запятой или в двойное число, а затем выполнять всю работулогика, затем, наконец, форматирование вывода.
Что-то вроде:
Double d = Double.parseDouble(s);
double val = d; //mind the auto-boxing/unboxing
//business logic
//get ready to display to the user
DecimalFormat df = new DecimalFormat("#.0000");
String s = df.format(d);
http://download.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html