What is this format specifier? - eviltoast

What is %.2f? Why is it not just %f? Is there some additional calculation happening? The half function already does all the calculations including splitting the bill, so I’m not sure what %.2f is. (Btw why is this code not formatting correctly in lemmy?)


#include 
#include 

float half(float bill, float tax, int tip);

int main(void)
{
    float bill_amount = get_float("Bill before tax and tip: ");
    float tax_percent = get_float("Sale Tax Percent: ");
    int tip_percent = get_int("Tip percent: ");

    printf("You will owe $%.2f each!\n", half(bill_amount, tax_percent, tip_percent));
}

// TODO: Complete the function
float half(float bill, float tax, int tip)
{
    bill += (bill * (tax / 100.0));
    bill += (bill * (tip / 100.0));

    bill /= 2;

    return bill;
}
  • steersman2484@sh.itjust.works
    link
    fedilink
    arrow-up
    24
    ·
    edit-2
    1 year ago

    Please put your code between tripple backticks in a seperate line above an below your code. Single backticks are only for inline code like this.

    To answer your question, the %.2f means it should only print two digits after the decimal point.

    You can also use some other variations like this:

    • %2f print the number at least 2 characters wide
    • %5.2 print the number at least 5 characters wide with a precision of two digits after the decimal point
    • %05.2 the same as above, but fill leading digits with zeros

    This is just formatting, play a bit around with it and you will get it.