a FOR loop and floating variables

Simen Kjaeraas simen.kjaras at gmail.com
Thu May 2 11:46:21 PDT 2013


On 2013-05-02, 20:14, Carlos wrote:

> I have this code :
>
> import std.stdio;
> import std.c.stdlib;
> void main()
> {
> int fahr;
> write("F\tC\n");
> for (fahr = 0; fahr <= 300; fahr = fahr + 20)
> write(fahr, "\t", (5.0/9.0)*(fahr-32), "\n");
> write("Done!\n");
> exit (0);
> }
>   Which works. but if I change the "5.0" for "5" I get cero on the  
> celsius side.
>
> import std.stdio;
> import std.c.stdlib;
> void main()
> {
> int fahr;
> write("F\tC\n");
> for (fahr = 0; fahr <= 300; fahr = fahr + 20)
> write(fahr, "\t", (5/9)*(fahr-32), "\n");
> write("Done!\n");
> exit (0);
> }
>
> So why is this ?

Both 5 and 9 in the second example are integers (int). When you divide
one int by another, the result is an int, and hence (5/9) is 0.

-- 
Simen


More information about the Digitalmars-d-learn mailing list