#include <iostream>
#include <algorithm>
#include <stack>
#include <string>
#include <cstdio>
#include <map>

using namespace std;

//KY129
int main() {
    char buf[400];
    //用map来存储运算符的优先级
    map<char, int> priority = {
        {'$', 0},
        {'+', 1},
        {'-', 1},
        {'*', 2},
        {'/', 2}
    };
    while (fgets(buf, 400, stdin) != NULL) {
        string expr = buf; //转换成C++风格的字符串,expression
        expr.pop_back(); //弹出最后的换行符
        if (expr == "0") {
            break;
        }
        expr.push_back('$'); //加上结尾
        string num; //用来收集单独的数字 1 3 -> 13
        stack<double> numStack;
        stack<char> operStack;
        for (int i = 0; i < expr.size(); i++) {
            if (expr[i] >= '0' &&
                    expr[i] <= '9') { //如果是数字,则追加到num后面
                num.push_back(expr[i]);
            } else if (expr[i] == ' ') { //直到读取到空格
                if (num != "") { //如果num有值,则放到操作数里
                    numStack.push(stod(num)); //stod(string s) 把s转换成double类型
                    num = "";
                }
            } else {
                if (expr[i] == '$') {
                    if (num != "") {
                        numStack.push(stod(num)); //stod(string s) 把s转换成double类型
                        num = "";
                    }
                }
                while (!operStack.empty() && priority[operStack.top()] >= priority[expr[i]]) {
                    double num1 = numStack.top();
                    numStack.pop();
                    double num2 = numStack.top();
                    numStack.pop();
                    char top = operStack.top();
                    operStack.pop();
                    switch (top) {
                        case '+':
                            numStack.push(num2 + num1);
                            break;
                        case '-':
                            numStack.push(num2 - num1);
                            break;
                        case '*':
                            numStack.push(num2 * num1);
                            break;
                        case '/':
                            numStack.push(num2 / num1);
                            break;
                    }
                }
                operStack.push(expr[i]);
            }
        }
	   //输出最后的字符
        printf("%.2lf\n", numStack.top());
        numStack.pop();
    }
}