Couple of ways to do this, but they involve scripts.
If you want to edit directly you will need and on object enter script trigger that will safe the value of the field you are in to the "old price" field and the you enter the new one. This has problems because if you decide not to change the price the previous old price will be entered any time you click in the field or modify.
I would suggest using a global field and a Save New Price button that will execute the script:
Set Filed[ oldPrice; currentPrice] //set old price
Set Filed[ currentPrice; GlobalNewPrice] //set new price from global
Set Field[ GlobalNewPrice; ""] //clear global after use
How you implement it exactly depends on if you are in a portal or just a record but it is all basically the same.