#include <cctype>
#include <iostream>
#include <unordered_map>
#include <stack>
#include <algorithm>
using namespace std;
stack<char> op;
stack<float> num;
unordered_map<char, int> prime{{'+', 1}, {'-', 1}, {'*', 2},{'/', 2}};
void eval(){
float b = num.top(); num.pop();//第2个操作数
float a = num.top(); num.pop();//第1个操作数
char c = op.top(); op.pop();
float x;
if(c == '+') x = a + b;
else if(c == '-') x = a - b;
else if(c == '*') x = a * b;
else if(c == '/') x = a / b;
num.push(x);
}
int main() {
string str;
while(getline(cin, str) && str != "0"){
for(int i = 0; i < str.size(); i ++){
if(str[i] == ' ')
continue;
else if (isdigit(str[i])){//数字处理
float x = 0;
for(; i < str.size() && isdigit(str[i]); i ++)
x = x * 10 + str[i] - '0';
num.push(x);
i --;
}
else {
while (!op.empty() && prime[op.top()] >= prime[str[i]])
eval();
op.push(str[i]);
}
}
//处理栈中剩余的运算符
while(!op.empty())
eval();
printf("%.2f\n", num.top());
num.pop();//清空
}
return 0;
}