You are doing integer division. If the result is less than 1, it will always display 0 * 100.00, therefore always 0. If you want to get the exact percentage, you need to include one of the variables as a float.
select (count(P.PERSON_ID) / CAST ((select count(*) from PERSON P) As Float)) * 100.00 as "12345 Zip Code Percentage" from PERSON P where P.ZIP = '12345'
source share