11-26-2017, 09:10 PM

The program ROUNDRCP rounds a number to the nearest 1/n. This function can come in handy in several applications, for example, when working with construction or measuring, when have to round results to the nearest eighth (1/8), inch (1/12) or sixteenth (1/16).

Round π to the nearest 1/4:

ROUNDRCP(π, 4): 3.25 = 13/4

Round e^2 to the nearest 1/100:

ROUNDRCP(e^2, 100): 7.39 = 739/100

Round 1/4 + 2/7 + 3 1/3 to the nearest 1/16:

ROUNDRCP(1/4 + 2/7 + 3 + 1/3, 16): 3.875 = 31/8

Code:

`EXPORT ROUNDRCP(a,n)`

BEGIN

// Round a to the nearest 1/n

// 2017-11-21 EWS

LOCAL w;

w:=FP(ABS(a))*n;

w:=ROUND(w,0);

RETURN IP(a)+SIGN(a)*(w/n);

END;

Round π to the nearest 1/4:

ROUNDRCP(π, 4): 3.25 = 13/4

Round e^2 to the nearest 1/100:

ROUNDRCP(e^2, 100): 7.39 = 739/100

Round 1/4 + 2/7 + 3 1/3 to the nearest 1/16:

ROUNDRCP(1/4 + 2/7 + 3 + 1/3, 16): 3.875 = 31/8