they are only divisible by .00000000 as far as i know
In the current version of the software, yes. However this is something that can be changed if the need ever arises (such as
BTC1 = US$1M for example).
While not impossible, this wouldn't necessarily be an easy change.
There are significant considerations about the largest value an integer variable can hold in the program. More importantly, it would change the way the blockchain represents the values and would therefore create a forked blockchain unless you could get EVERYONE to switch to the new programming and all of them to do it at the same time.
There are other possible solutions. A couple of examples are an alternate cryptocurrency for small amounts, a new cryptocurrency that is backed by bitcoin, or a cryptocurrency that is designed to smoothly replace bitcoin. Other solutions may also present themselves in the future (necessity is the mother of invention). Seeing as possible solutions exist, and even better solutions could be discovered, I just don't see a reason to be concerned right now about the possibility that 1 Bitcoin could be worth more than $100,000,000 someday.
Ignoring this, which nails it IMO
Seeing as possible solutions exist, and even better solutions could be discovered, I just don't see a reason to be concerned right now about the possibility that 1 Bitcoin could be worth more than $100,000,000 someday.
You're right that changing from 8dp to something else would require a fork. However if memory serves this has already been done at least once, with clients maintaining backwards compatability until a majority of nodes are running the new version, at which point clients automatically move up to the new version of the protocol.