$100.00 - does not impart enough information to an international user. The '$' symbol (and many other currency symbols) are used by multiple countries.
USD 100.00 - is not generally the order used, and if someone doesn't know what "USD" means they could be lost.
100.00 USD - is better, but still suffers from the "USD" issue. Also, as I scan "100" is a meaningless number that is given context once I read (and hopefully understand) "USD".
Using a combination of the Currency Symbol and the ISO 4217 code (e.g., $100.00 USD) is your best bet. It immediately identifies the number as a dollar amount and verifies exactly what type of "dollar" the symbol is referring to.
Assuming that your website is based in the United States you should always present the USD amount as the primary currency. This is the "true value" of whatever you have attached the currency value to and should thusly be displayed as such. Translating to a local currency can cause confusion for the reason you mention (values always changing) and also because exchange rates are not necessarily constant from physical location-to-location within a country.
You could provide the local exchange currency value alongside the USD value. For example, one might design an e-commerce site with both values:
download bmml source – Wireframes created with Balsamiq Mockups
Provide some mechanism to get "more info" (the "[?]" in this case) on how you got that value. Give information on the exchange rate and how you calculated it.
Another possible "good to have" is the clarification that what you display is an "estimate". Depending on how you calculate that number it might not be accurate at the time the page displays, making sure the user understands that this value can fluctuate daily (or even hourly) could be beneficial depending on your audience. The "more info" link could provide additional information of why that is (legal speak: "cover your butt").