I prefer the numerical solution too. In any case I'd strongly suggest to use constraints to make sure no invalid values will ever be inserted into the table:
I'm responding late, but I think this is quite important and can save lots of problems later.
(Note that even in this case if someone will try to insert a real number (eg. double) between 0 and 1, Oracle will silently round the value and no error will be raised. Although even this kind of errors can be prevented with carefully crafted desing, I'm not that paranoid to try to catch these.)