#JavaScript (ES6), 94 bytes Not particularly short, but fun. Adding parentheses all over the place... <!-- language: lang-js --> s=>([e,o]=s.split` `,[...o].map(x=>e=e.split(x).join((a+=')')+x+(b+='(')),a=b=''),eval(b+e+a)) ###Test cases <!-- begin snippet: js hide: true console: true babel: false --> <!-- language: lang-js --> let f = s=>([e,o]=s.split` `,[...o].map(x=>e=e.split(x).join((a+=')')+x+(b+='(')),a=b=''),eval(b+e+a)) console.log(f("6.3*7.8 +-*/")) // 49.14 console.log(f("2.2*3.3+9.9/8.8-1.1 */+-")) // 7.285 console.log(f("2.2*3.3+9.9/8.8-1.1 +*/-")) // 2.2 console.log(f("10/2+5-1 +-/*")) // 1.6666 console.log(f("2147480/90+10*5 +/-*")) // 107374 console.log(f("3*55-5/8/4+1 -/+*")) // 7.6875 <!-- end snippet -->