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;
}
It’s a decimal floating point specifier with a precision sub-specifier.
Example with pi.
#define PI 3.1415926 int main() { printf("%.2f", PI); // prints 3.14 return 0; }
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.
man printf
.2f%
means it will format to two decimal places max. So 5.877 will format as 5.88 and 1 will format as 1.00.