Instead of using a number field with an auto-entered calcualtion, use a calculation field with this expression. This field should update automatically.
Auto-entered calculations do not update automatically if the value changed comes from a different table.
I have two questions about this:
1). If I change this now, will this change everything I've entered in this field thusfar?
2). Will I be able to enter a number of my own choosing in this field? (For example, if instead of giving someone a discount by percentage, I just wanted to give them a $100 discount).
You could use a script trigger too.
Set an OnObjectSave trigger on the discount field to run a script which is basically one line..
Set Field [Discount Total] SubTotal * Discount
You could also expand on this, such as
If [not isempty (Discount Subtotal)
Show custom dialog [ "do you want to replace the existing discount total with the new figure of " & discount * total ]
If [get(LastMessageChoice) = 1]