#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <functional>
#include <numeric>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <utility>
#include <sstream>
#include <complex>

using namespace std;

#define FOR(i,a,b) for(long long i=(a);i<(b);i++)
#define REP(i,N) for(long long i=0;i<(N);i++)
#define ALL(s) (s).begin(),(s).end()
#define fi first
#define se second

#define PI acos(-1.0)
#define INF 1000000007

typedef long long ll;
typedef pair<ll, ll> P;
typedef pair<double, double> PD;
typedef pair<string, ll> PS;
typedef vector<ll> V;

string s;
stack<double> sd;
vector<string> vs;
double a, b;

int main(){
	while (getline(cin, s)){
		string buf;
		int start = 0;
		REP(i, s.size()){
			if (s[i] == ' '){
				buf = s.substr(start, i - start);
				vs.push_back(buf);
				start = i + 1;
			}
		}
		buf = s.substr(start, s.size() - start);
		vs.push_back(buf);
		REP(i,vs.size()){
			stringstream ss;
			if (vs[i] == "+"){
				a = sd.top(); sd.pop();
				b = sd.top(); sd.pop();
				sd.push(b + a);
			}
			else if (vs[i] == "-"){
				a = sd.top(); sd.pop();
				b = sd.top(); sd.pop();
				sd.push(b - a);
			}
			else if (vs[i] == "*"){
				a = sd.top(); sd.pop();
				b = sd.top(); sd.pop();
				sd.push(b*a);
			}
			else if (vs[i] == "/"){
				a = sd.top(); sd.pop();
				b = sd.top(); sd.pop();
				sd.push(b / a);
			}
			else{
				ss << vs[i];
				ss >> a;
				sd.push(a);
			}
		}
		printf("%.10lf\n", sd.top());
		sd.pop();
		vs.clear();
	}
}