On 2001-10-10 at 12:58 +0400, Borsenkow Andrej wrote: > > float var1=0.0 > > var1=$((3 / 2)) > > echo $var1 > > > > return 1.000000000e+00 not good ! :( > Integer divided by integer is integer. Not so useful if you're manipulating parameters and you don't know what their value is in advance. % zmodload zsh/mathfunc % float var1 % var1=$((float(3) / 2)) % echo $var1 1.500000000e+00 (Math-context float() is not the zsh command "float") > > and how to format the output of $var1 ? > > (i want a number like 95.3) > typeset description: They just change the storage type, so that: % typeset -E var2 % typeset -F var3 % var2=$((3.0 / 2 )) ; var3=$((3.0 / 2 )) % print $var2 1.500000000e+00 % print $var3 1.5000000000 I've not seen a way in zsh to modify this to be 'sensible' for humans, as the original poster wants, unless you're happy to _just_ remove trailing zeroes, in which case use the -F form and then: % print ${var3%%0##} 1.5 Personally, I'd use the OS's printf(1) if it exists, and use the G format specification; on OpenBSD: gG The argument is printed in style f or in style e (E) whichev- er gives full precision in minimum space. % printf '%g\n' $var2 1.5 % printf '%g\n' $var3 1.5 -- I don't like your use of the word "interesting" in this context.
Attachment:
pgpd3HGXfpGlb.pgp
Description: PGP signature