#include <bits/stdc++.h> 

using namespace std;

stack<char> op;
stack<double> num;
unordered_map<char, int> pr;
void eval(){
	auto b = num.top();
	num.pop();
	auto a = num.top();
	num.pop();
	auto c = op.top();
	op.pop();
	
	double x;
	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(){
	pr['+'] = 1;
	pr['-'] = 1;
	pr['*'] = 2;
	pr['/'] = 2;
	string str;
	while (getline(cin, str)){
		
		if (str == "0") break;
		
		for (int i=0; i<str.size();i++){
			int ch = str[i];
			if (isdigit(ch)){
				double x = 0, j = i;
				while(j<str.size() && isdigit(str[j])){
					x = x * 10 + (str[j] - '0');
					j ++; 
				}
				num.push(x);
				i = j - 1;
			}
			else {
				if (ch == ' ') continue;
				while (op.size() && pr[op.top()] >= pr[ch]) eval();
				op.push(ch);
			}
		}
		
		while (op.size()) eval();
		
		printf("%.2lf\n", num.top());
		num.pop();
	}
	
	
	return 0;
}