When I put this expression as a watch expression in my data viewer:
Let ( [ $Discount_pct_cust = 61.8 ;
$toplinenumber1 = 267.41 ;
$fsc = 24.3 ;
~num = ( 100 - $discount_pct_cust ) * ( $toplinenumber1 / 100 ) ;
~fsc = ( ~num * $fsc / 100 ) ;
~newRate = Round ( ~num + ~fsc ; 2 )
I get the expected answer of 126.97
Thus, I would take a look at how the three variables get values to see which one is not getting the expected value--checking closely for any data entry errors that may result in a misspelled variable name.
I assume you are using variables in a calculation field, which do not update as you expect. I wouldn't use variables in a calculation field, instead use fields.
S Chamblee makes a good observation.
I had assumed this was the "calculated result" part of a Set Field or Set Variable script step.