Alan,
It does error on ones that ' distof ' doesn't know what to do with. There are so many combinations that could be wrong, that I don't really know how one could code for all occurances, unless the code is super huge, which I was not trying to do.
I did test most of your list though. I can go through it again, and have a better type of error handling.
Biscuits,
The reason why yours didn't work is two fold. One is that the code looks at the string that is current, and then detimenes what percision is needed. So when the base number has a lower percision than the one being added to it, it doesn't recognize it. And the second is the way that acad translates strings->reals and reals->strings. This is a know issue. I'm not quite sure how to get around it at the moment.