this post was submitted on 25 Sep 2023
13 points (69.7% liked)

Programming

17398 readers
105 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 1 year ago
MODERATORS
 

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;
}
you are viewing a single comment's thread
view the rest of the comments
[–] steersman2484@sh.itjust.works 24 points 1 year ago* (last edited 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.