It does make sense. Calculator and modulo here are different things. In other words 1000%50 in Construct is 0 because you can divide 1000 by 50 exactly ( 20 times ), nothing is left over.
Calculsting a percentage is a completely different thing. Unfortunately the symbol is the same so I can see how it can be confusing.
(1000*50)/100 is something you can use to get the right percentage ( 50 there would be percentage you want to calculate, 1000 is you max value, percentage of which you want to figure out.