Hello and welcome to our community! Is this your first visit?
Enjoy an ad free experience by logging in. Not a member yet? Register.

# Thread: Float Division Problems (C)

1. ## Float Division Problems (C)

I have a segment of code that takes an integral float and divides it by ten however many times it's necessary to make it less than one (therefore moving all digits to the right of the decimal). For some reason, I can't get it to work correctly. Here are two different approaches, neither of which works:

Code:
```/*printfs added for testing*/
printf("decval is %f\n", decval);
while((decval /= 10) > 0)
;
printf("decval is %f\n", decval);```
This one, when tested with a decval of five, prints the following:

5.000000
0.000000

I thought that the assignment in the condition might have been messing things up, so I tried the following:

Code:
```/*printfs added for testing*/
printf("decval is %f\n", decval);
while((decval /= 10) && decval > 0)
;
printf("decval is %f\n", decval);```
This did the exact same thing.

I then thought that maybe there was something wrong with float division, so I changed the first printf to print decval/10, which showed the correct answer of 0.500000... but the while loop still changed it to 0.000000.

What is it that I'm missing here? I am relatively new to C, but I'm surprised to be having these problems with seemingly simple float division...

Thanks,
Matt

Code:
```int main()
{
float decval = 5.0f;
printf("decval is %f\n", decval);

while ( (decval = (decval / 10.0f)) > 0 )
{
printf("decval is %.64f\n", decval);
}

return 0;
}```
or remove the ';' after your while loop...

divides it by ten however many times it's necessary to make it less than one
But instead of having a condition of "keep dividing while greater or equal than one" your condition is "greater than 0".
Try:
Code:
```while((decval /= 10) >= 1)
;```

shmoove

4. ahh I missed that part, good catch shmoove

5. Wow I feel stupid. I can't believe I made such a dumb mistake with a loop! Oh well, thanks for the help!

Matt

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•