Assume we want a function that evaluates a number to n digits using Maxima’s big float numbers. You can write a purely symbolic function for this.
>function N(x,n) &&= block(fpprec:n, bfloat(x)) block(fpprec : n, bfloat(x)) >&N(pi,100) 3.141592653589793238462643383279502884197169399375105820974944\ 592307816406286208998628034825342117068b0
The value of fpprec is globally changed then. To avoid this you can save the variable in a local value.
>function N(x,n) &&= block([m,r], m:fpprec, ... > fpprec:n, r:bfloat(x), fpprec:m, r) block([m, r], m : fpprec, fpprec : n, r : bfloat(x), fpprec : m, r) >&N(pi,50) 3.1415926535897932384626433832795028841971693993751b0 >&fpprec 100