#include<iostream>
#include<stdlib.h>
#include<iomanip>
#include<stack>
using namespace std;
int compare(char s){
switch(s){
case '#': return 0;
case '(': return 1;
case '+': return 2;
case '-': return 2;
case '*': return 3;
case '/': return 3;
case ')': return 4;
}
}
string toPostFix(string str){
string num;
stack<char>s;
int i=0;
while(i<str.size()){
if((str[i]>='0'&&str[i]<='9')||str[i]=='.'){
num.push_back(str[i]);
i++;
if(!((str[i]>='0'&&str[i]<='9')||str[i]=='.')){
num.push_back('_');
}
}
else{
if(s.empty()||str[i]=='('){
s.push(str[i]);
i++;
continue;
}
if(compare(str[i])>compare(s.top())||s.top()=='('){
if(str[i]==')'){
while(s.top()!='('){
num.push_back(s.top());
s.pop();
}
s.pop();
i++;
continue;
}
s.push(str[i]);
i++;
}
else{
num.push_back(s.top());
s.pop();
}
}
}
return num;
}
float calc(string str){
stack<float>s;
str.push_back('#');
int i=0;
float a,b;
while(1){
if(str[i]=='#'){
break;
}
string n="";
int flag=1;
while((str[i]>='0'&&str[i]<='9'&&flag)||str[i]=='.'||str[i]=='_'){
if(str[i]=='_'){
s.push(atof(n.c_str()));
flag=0;
}
else{
n+=str[i];
}
i++;
}
if(!((str[i]>='0'&&str[i]<='9')||str[i]=='.'||str[i]=='_')){
a=s.top();
s.pop();
b=s.top();
s.pop();
switch(str[i]) {
case '*':
s.push(a*b);
break;
case '/':
s.push(b/a);
break;
case '+':
s.push(a+b);
break;
case '-':
s.push(b-a);
break;
}
i++;
}
}
return s.top();
}
int main(){
string str;
cin>>str;
cout<<setiosflags(ios::fixed)<<setprecision(2)<<calc(toPostFix(str));
return 0;
}