#include <iostream>
#include <stack>
#include <unordered_map>

using namespace std;
unordered_map<char, int> pr{{'+', 1}, {'-', 1}, {'*', 2}, {'/', 2}};
stack<double> num;
stack<char> op;
void eval(){
    double x;
    double b = num.top(); num.pop();
    double a = num.top(); num.pop();
    char c = op.top(); op.pop();
    if(c == '+') x = a + b;
    else if(c == '-') x = a - b;
    else if(c == '*') x = a * b;
    else x = a / b;
    num.push(x);
}

int main(){
    string s;
    while(getline(cin, s)){
        if(s == "0") break;
        while(num.size()) num.pop();
        for(int i = 0; i < s.size(); i ++){
            if(isdigit(s[i])){
                int j = i;
                double x = 0;
                while(isdigit(s[j]) && j < s.size()){
                    x = x * 10 + s[j] - '0';
                    j ++;
                }
                i = j;
                num.push(x);
            }else if(s[i] != ' '){
                while(op.size() && pr[op.top()] >= pr[s[i]]) eval();
                op.push(s[i]);
            }
        }
        while(op.size()) eval();
        printf("%.2lf\n", num.top());
    }
}