#include <bits/stdc++.h>
using namespace std;

int getlevel(char op){
    if(op=='#')return 0;
    else if(op=='$')return 1;
    else if(op=='+'||op=='-')return 2;
    else return 3;
}

double compute(double x,double y,char op){
    if(op=='+')return x+y;
    else if(op=='-')return x-y;
    else if(op=='*')return x*y;
    else return x/y;
}

int main() {
    string s;
    //cout<<"yes"<<endl;
    while (getline(cin,s)) { // 注意 while 处理多个 case
        if(s.size()==1)break;
        stack<double> nums;
        stack<char> ops;
        ops.push('#');
        s+='$';
        //cout<<s<<endl;
        int n = s.size();
        //cout<<"yes"<<endl;
        for(int i=0;i<n;){
            if(s[i]==' '){
                i++;
                continue;
            }
            if(s[i]>='0'&&s[i]<='9'){
                //cout<<"yes"<<endl;
                double tem = 0;
                while(i<n&&s[i]>='0'&&s[i]<='9'){
                    tem=tem*10+s[i]-'0';
                    i++;
                }
                //cout<<tem<<endl;
                nums.push(tem);
                continue;
            }else{
                //cout<<s[i]<<endl;
                if(getlevel(ops.top())<getlevel(s[i])){
                    ops.push(s[i]);
                    i++;
                    //cout<<s[i]<<endl;
                }else if(getlevel(ops.top())>=getlevel(s[i])){
                    double res = 0;
                    char op = ops.top();
                    ops.pop();
                    //ops.push(s[i]);
                    //cout<<s[i]<<endl;
                    double b = nums.top();
                    nums.pop();
                    double a = nums.top();
                    nums.pop();
                    res = compute(a,b,op);
                    //cout<<res<<endl;
                    nums.push(res);
                    
                }
            }
        }
        printf("%.2lf\n",nums.top());
    }
}
// 64 位输出请用 printf("%lld")