Obviously it's not perfect because (1*100)/127 will still return 0
I'm not making NASA type products here so even if there is a 2 or 3% error, the end user probably wouldn't know. And if they did know, they won't care. That tip worked out great, thanks Henrik.
What if you multiply/divide by more than 100 to pick up extra decimals?
The more the merrier but you can't have an amount that is greater than a word sized variable. I've found that in most cases you don't need a long to do decent math.