Synopsis
In calling some function, you specified an argument whose value must be a positive (ie, not zero, nor a negative) number, but isn't. name is the name of the function you called which complained about the arg. number is which of the passed args was in error (where 1 is the first arg). bad value is what you passed.
Cause
You put the name of a variable in quotes, thus mistakenly passing the variable's name rather than its value. A variable's name is not a numeric value. This is likely the case if bad value is the name of the variable.
Cure
Do not put your variable name in quotes.
Cause
You specified a variable name, but that variable was never assigned any value. Therefore, its default value is its name in capital letters. This is likely the case if bad value is the name of the variable in capital letters.
Cure
Make sure that you assign a value to the variable before calling the function. You can trap the NOVALUE condition to catch errors of this nature.