[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: printing floats/integer



the only solution to your problem I would come up with is doing it in a loop
recursively  but i am afraid this is not very elegant

klaus


Sean Heukels <sean77=cuthere=@dds.nl> wrote in message
9884hb$coo$1@newshost.accu.uu.nl">news:9884hb$coo$1@newshost.accu.uu.nl...
>
> What if I dont know that the float will
> be 8 in length and has 6 decimals ??
>
> How can we put this in a subroutine, that handles
> a variable (e.g. PRO FORMAT, var1) and returns
> the right way to print ??
>
> For the int I use
>
> PRO FORMAT, var
> which=SIZE(var, /TYPE)
> if (which eq 2) then begin
> le=FLOOR(ALOG10(var)) + 1
> RETURN, STRING(var, FORMAT='(I'+STRTRIM(STRING(le))+')'
> endif else if (which eq 4) then begin
>
> How do I do this for a float >>>??
> 1.22222200000 must become 1.22222 without leading or trailing spaces.
> And in the best scenario 1.00 doesn;t become 1., but 1.0 ....
>
>
>
> Sean
>
>
> Klaus Scipal <kscipal@ipf.tuwien.ac.at> schreef in berichtnieuws
> 9882vb$sbi$1@news.tuwien.ac.at...
> > you can use the the string command in connection with format
> >
> > for example
> > IDL> x=1.222221000000000000000
> > IDL> print, string(format='(f8.6)',x)
> >  1.222221
> >
> > klaus
> >
> > Sean Heukels <sean77=cuthere=@dds.nl> wrote in message
> > 9881p0$55o$1@newshost.accu.uu.nl">news:9881p0$55o$1@newshost.accu.uu.nl...
> > > I wrote a small module for integers. The variable is formatted and
> > returned.
> > >
> > > "1         " returns as "1"
> > >
> > > Now this doesn't work with floats. for example if I want to print
> > "1.22221"
> > > I
> > > dont want to see it as "1.222221000000000000000" or
> > > "1.222222                  "
> > >
> > > Does anyone know how I can solve this ??
> > >
> > > Greets Sean
> > >
> > >
> >
> >
>
>