bug-gnu-utils
[Top][All Lists]
Advanced

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

Re: int-function: programming error or bug?


From: David Kastrup
Subject: Re: int-function: programming error or bug?
Date: Fri, 27 Feb 2009 16:43:03 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux)

Aron Brunner <address@hidden> writes:

> Dear Sir, dear Madame,
>
> thank you very much for awk/gawk i work with over the last 10 years
> with success and great joy.
> With gawk 3.1.6 on Mandriva 2009.0 i get a result i don't understand:
>
> The code
> -----------------------------------------------
> #!/usr/bin/awk -f
>
> BEGIN {
>   for (alfa=8.6;alfa<=9.2;alfa=alfa+0.1) {
>     alfaint=int(alfa);
>     printf "%s%5.10f s%d\n","alfa=",alfa,"int(alfa)=",alfaint;
>   }
>   beta=9.0;
>   betaint=int(beta);
>   printf "%s%5.10f %s%d\n","beta=",beta,"int(beta)=",betaint;
> }
> -----------------------------------------------
> gives the integer from alfa=9.0 to 8:
> alfa=8.6000000000 int(alfa)=8
> alfa=8.7000000000 int(alfa)=8
> alfa=8.8000000000 int(alfa)=8
> alfa=8.9000000000 int(alfa)=8
> alfa=9.0000000000 int(alfa)=8
> alfa=9.1000000000 int(alfa)=9
> alfa=9.2000000000 int(alfa)=9
> beta=9.0000000000 int(beta)=9
>
> I suppose i wrote the code-lines in a wrong manner;
> may i respectfully ask for information.

Try

#!/usr/bin/awk -f

BEGIN {
  for (alfa=8.6;alfa<=9.2;alfa=alfa+0.1) {
    alfaint=int(alfa);
    printf "%s%5.20f %s%d\n","alfa=",alfa,"int(alfa)=",alfaint;
  }
  beta=9.0;
  betaint=int(beta);
  printf "%s%5.20f %s%d\n","beta=",beta,"int(beta)=",betaint;
}

instead.  Do you understand the resulting output:

alfa=8.59999999999999964473 int(alfa)=8
alfa=8.69999999999999928946 int(alfa)=8
alfa=8.79999999999999893419 int(alfa)=8
alfa=8.89999999999999857891 int(alfa)=8
alfa=8.99999999999999822364 int(alfa)=8
alfa=9.09999999999999786837 int(alfa)=9
alfa=9.19999999999999751310 int(alfa)=9
beta=9.00000000000000000000 int(beta)=9

?

-- 
David Kastrup





reply via email to

[Prev in Thread] Current Thread [Next in Thread]