Is there any way to put a constraint on number of decimal points a variable can take in LP?

E.g. Variable x(i,j,p) is taking values 0.00000000001

Can we force the variable to take only till 2 decimal places? In this case variables with this small values will become 0.

Or is there any other way possible to solve this issue?

The Xpress-Optimizer solvers rely on floating point arithmetic, you can set some tolerance parameters (in particular XPRS_FEASTOL) to choose the precision of solutions, but this does not impact the digits that get displayed for the solution values.

Assuming that you are working with Mosel, you can apply formatting to your output printing:

writeln(textfmt(x.sol, 5, 2)) ! Reserve total length of 5, with 2 digits after decimal point

or generally set the format for real number display:

setparam("realfmt", "%.2f") ! 2 digits after decimal point

or if you would like to work with the rounded solution values within your model:

xsol:= round(x.sol*100)/100