#include<iostream>
#include<string>
#include<stack>
using namespace std;
// 用&传值可在函数内改变函数外的值
double GetNumber(string str,int &index){
double number=0;
while(str[index]>='0' && str[index]<='9'){
number=number*10+(str[index]-'0');
index++;
}
return number;
}
int Priority(char c){
int priority;
if(c=='#') priority=0;
else if(c=='$') priority=1;
else if(c=='+' || c=='-') priority=2;
else if(c=='*' || c=='/') priority=3;
return priority;
}
double Calculate(double a,double b,char operation){
double result;
if(operation=='+') result=a+b;
else if(operation=='-') result=a-b;
else if(operation=='*') result=a*b;
else if(operation=='/') result=a/b;
return result;
}
int main(){
string str;
while(getline(cin,str)){
if(str=="0") break;
stack<double> number;
stack<char> operation;
operation.push('#');
str+='$';
int index=0;
while(index<str.size()){
if(str[index]==' ') index++;
else if(str[index]>='0' && str[index]<='9') number.push(GetNumber(str,index));
else{
if(Priority(str[index])>Priority(operation.top())){
operation.push(str[index]);
index++;
}
else{
double b=number.top();
number.pop();
double a=number.top();
number.pop();
number.push(Calculate(a,b,operation.top()));
operation.pop();
}
}
}
printf("%.2f\n",number.top());
}
return 0;
}
//http://t.cn/AiKoGS94