randRangeExclude( 1 , 299 , [ 100 ] )

Express A\% as a fraction. Reduce to lowest terms.

A / 100

A\% literally means A per 100

Putting this in fraction form: fraction( A , 100 )

Both numerator and denominator are divisible by getGCD( A , 100 ).

Reducing to lowest terms, fractionReduce( A , 100 ).

Optionally, the improper fraction fractionReduce( A , 100 ) can be converted to the mixed number ( A - A % 100 ) / 100 + fractionReduce( round ( A % 100 ), 100 ).

randRange( 101, 1999 ) / 10

A\% literally means A per 100

Putting this in fraction form: fraction( A , 100 )

Multiplying top and bottom by 10 to get rid of the decimal: fraction( A * 10 , 1000 )

Both numerator and denominator are divisible by getGCD( A * 10 , 1000 ).

Reducing to lowest terms, fractionReduce( A * 10 , 1000 ).

Optionally, the improper fraction fractionReduce( A * 10 , 1000 ) can be converted to the mixed number ( A * 10 - A * 10 % 1000 ) / 1000 + fractionReduce( round ( A * 10 % 1000 ), 1000 ).