This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: bash and real arithmetic


On Fri, 11 Apr 2003, Igor Pechtchanski wrote:

> On Fri, 11 Apr 2003, Randall R Schulz wrote:
> 
> > At 10:21 2003-04-11, Igor Pechtchanski wrote:
> > >On Sat, 12 Apr 2003, Stepan Yakovenko wrote:
> > >
> > > > HI!
> > > >
> > > >   Is it possible to get for loops working
> > > >   in double arithmetic in bash ? I've got to run
> > > >   a program with a real argument many times, changing it
> > > >   every run by some fixed small (<1) number.
> > > >   Thanx in advance, sorry for my broken English.
> > >Umm, scale?  For example:
> > >    for (( i=0; i < 10; i++ )); do echo 0.$i; done
> > Umm, leading zero suppression?
> > % for (( i=0; i < 100; i++ )); do echo 0.$i; done
> > 0.0
> > 0.1
> > [snip]
> > 0.20
> > etc.
> > Randall
> 
> Yes, yes...  It was an /example/.  If you want leading zeros for numbers
> greater than 10, use bash's "printf" builtin:
>    for (( i=0; i < 100; i++ )); do echo 0.$(printf "%02d" $i); done
> Better? :-p
> 	Igor

zsh does integer math, but since you want fractional math, zsh won't do.
You could simply use 'bc'.  Eg:

$ x='2.2'
$ x=`echo $x+0.3 | bc`
$ echo $x
2.5

-- 
Peter A. Castro <doctor at fruitbat dot org> or <Peter dot Castro at oracle dot com>
	"Cats are just autistic Dogs" -- Dr. Tony Attwood


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]