printf with bigfloats



A fresh session with Maxima 5.17.1
windows xp

First use of this function is weird,
  second try works:
-------------------------------------------

(%i1) print_test(fp) :=
        block([fpprec,fpprintprec,val],
         fpprec : fp,
         fpprintprec : 8,
         display(fpprec),
         print(" "),
         print(" k     value "),
         print("  "),
         for k thru 4 do
          ( val : bfloat(exp(k^2)),
            printf(true,"~2d    ~14a  ~%",k,string(val) ) ) )$
(%i2) print_test(30);
                                  fpprec = 30


 k     value

(%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) 
(%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) 
(%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) 
(%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) 
(%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) 
(%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) (%i2) 
(%i2)  1    2.7182818b0
 2    5.459815b1
 3    8.1030839b3
 4    8.8861105b6
(%o2)                                done

(%i3) print_test(30);
                                  fpprec = 30


 k     value

 1    2.7182818b0
 2    5.459815b1
 3    8.1030839b3
 4    8.8861105b6
(%o3)                                done
----------------------------------------------------

Any ideas?

Ted Woollett