Thread overview
Is this is intentional (or a bug)? (1/3 equals 0)
Mar 26, 2004
SL
Mar 26, 2004
Ilya Minkov
Mar 26, 2004
Stewart Gordon
March 26, 2004
Basically, I wrote this out:
radius=pow((volume*3)/(4*PI),1/3);

And radius was coming out to 1 every time. So I made a printf to show various parts of that.

printf("PI=%.*s volume=%.*s (volume*3)/(4*PI)=%.*s radius=%.*s\n", .toString(PI), .toString(volume), .toString((volume*3)/(4*PI)), .toString(radius));

PI=3.14159 volume=71.1094 (volume*3)/(4*PI)=16.9761 radius=1

And then I did this:
printf("1/3=%.*s",.toString(1/3));

And got:
1/3=0

I suppose this is intentional (Since both numbers are integers)?

P.S. I have changed it to 1/3.0, which works, but does not look like a proper fraction :P.
-SL
March 26, 2004
It is a C-ism. Due to lack of proper beginners' books on D, it is very advantageous to learn some of C before going to D. Also, everything which works the same way as in C or C++ has been left out of the documentation.

-eye

SL schrieb:
> Basically, I wrote this out:
> radius=pow((volume*3)/(4*PI),1/3);
> 
> And radius was coming out to 1 every time. So I made a printf to show various parts of that.
> 
> printf("PI=%.*s volume=%.*s (volume*3)/(4*PI)=%.*s radius=%.*s\n", .toString(PI), .toString(volume), .toString((volume*3)/(4*PI)), .toString(radius));
> 
> PI=3.14159 volume=71.1094 (volume*3)/(4*PI)=16.9761 radius=1
> 
> And then I did this:
> printf("1/3=%.*s",.toString(1/3));
> 
> And got:
> 1/3=0
> 
> I suppose this is intentional (Since both numbers are integers)?
> 
> P.S. I have changed it to 1/3.0, which works, but does not look like a proper fraction :P.
> -SL
March 26, 2004
SL wrote:

<snip>
> And got:
> 1/3=0
> 
> I suppose this is intentional (Since both numbers are integers)?

I think so.

> P.S. I have changed it to 1/3.0, which works, but does not look like a proper fraction :P.
> -SL

Does

	cast(real) 1/3

look more like it to you?

Stewart.

-- 
My e-mail is valid but not my primary mailbox, aside from its being the unfortunate victim of intensive mail-bombing at the moment.  Please keep replies on the 'group where everyone may benefit.