A bond has a yearly interest percent, face value, future value and maturity date. The interest percent is called the coupon. You earn that percentage of the face value. The sum of the present values of the future value and all the payments is the face value. The values are discounted to the present value based on the coupon rate. It turns out that the face, or present, value and future value are the same. This is because the interest is cashed out, so the bond's value stays the same no matter how long until maturity. When the expected rate of return goes up, the bond's price goes down to compensate. This is called a discount bond. When the expected rate of return goes down, the bond's price goes up to compensate. This is called a premium bond. You can calculate the new price.
Determine the bond's yearly payout based on the coupon. Multiply the coupon rate by the face value. For example, if the face value is $1,000 and the coupon rate is 10 percent, you receive $100 yearly.
Discount all the payments back to their present values. You can discount each payment separately, but it's easier to discount them all at once as described in Step 3 and Step 4.
Determine the overall discount rate from the present until maturity. For example, if the current rate is 9 percent (.09) and there are 10 years until maturity, the overall discount rate is 1 - (1 / (1.09^10)), a little less than .5776. You add one to the rate, raise to the power of periods, divide one by the result and subtract from one. The discount factor is the result before subtracting from one, a little more than .422. We will use the discount factor later.
Divide the overall discount rate (.5776) by the current yearly rate (.09) and multiply by the cash flow amount ($100). The result for our example is a little less that $642. This is the present value of the ten $100 payments.
Discount the future value back to its present value. For our example, you discount $1,000. Multiply $1,000 by the discount factor we determined before (.422) for a current worth of $422.
Add the two present values. This is the current price. For our example, $642 + $422 = $1,064. This is a premium bond because the rate went down. Since we rounded, the current price is some cents more.