The ferry to St. Johns is $6/pp, entrance to Trunk Bay used to be $4/pp, the taxi to Red Hook to catch the ferry in St. Thomas used to be $22/pp, and the taxi to Trunk Bay used to be $6/pp. I'm sure it's changed, but still approximate. Trunk Bay is one of the top 10 beaches in the world, with a self-guided snorkeling trail about 50 yards off shore. Snorkeling is MUCH less expensive than diving. The water in Trunk Bay is absolutely crystal clear and calm (unless there's a storm). Truly worth the hassle of getting there.
If you stay on St. Thomas, Coki Beach is better snorkeling that Megan's Bay. Sapphire Beach is better snorkeling than Coki, but not as nice of a beach.
I totally agree with Cas, Old San Juan is marvelous!