Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Using float in C

  1. Sep 16, 2008 #1
    I'm very new to C. If I had a program like the one below, I was hoping someone could tell me how I should edit it so that the lines "printf("\n%20s%20f", "Half of 1", div1);" and "printf("\n%20s%20f", "Half of 2", div2);" output decimals without too many excess spaces. Currently when outputted, they are in decimal form but don't give remainders and have quite a few zeros. I'm really stuck here and have spent way too much time on this. I'd really appreciate any help.


    int main(void)
    int int1, int2;
    float div1, div2;

    printf("\nGive two integers: ");
    scanf("%d%d", &int1, &int2);

    div1 = int1 / 2
    div2 = int2 / 2

    printf("\n%20s%20d", "First Number", int1);
    printf("\n%20s%20d", "Second Number", int2);
    printf("\n%20s%20f", "Half of 1", div1);
    printf("\n%20s%20f", "Half of 2", div2);

    return 0;
  2. jcsd
  3. Sep 16, 2008 #2


    User Avatar
    Homework Helper

    The division will be an integer division, change the code to:

    div1 = (float)int1 / 2.;
    div2 = (float)int2 / 2.;

    Note if either number in a binary operation is a float, then the other number will be "promoted" to a float as well.

    If you have a c reference manual, look up type promotion.
  4. Sep 16, 2008 #3
  5. Sep 18, 2008 #4


    User Avatar

    Here is another issue about "printf"
    see http://www.google.com/search?hl=en&q=printf&aq=f&oq= for a detail reference.
    If you want to limit the strengh of output. You could easily change the to

    %10f which means you should limit the output to 10 bit spaces.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook