A concrete example would help me to understand what you need. 5 is a decimal number, so payload range can give you a range of decimal numbers, that happen to be integers as well.
You can call a python function with a payload using PY.ExecString myFunc({1})
If your payload {1} = 10 then it will be treated as a number. Python will only treat it as a string if you put quotes around it like this:
myFunc("{1}")
If you want to be able to say any number with decimal points or fractional values then you are going to need to get pretty creative.