Я начинаю изучать программирование на C, и у меня возникла проблема с этим кодом:
#include <stdio.h>
float jobPrice (int numberOfPages, float pricePerSheet, float pricePerPlate, int numberOfCopies)
{
return (((pricePerPlate * numberOfPages) + ((numberOfPages/2)*numberOfCopies*pricePerSheet) + (numberOfCopies*2)) * 1.175f);
}
float colourPrinting (int numberOfPages, int numberOfCopies)
{
return jobPrice(numberOfPages, 0.04f, 28.00f, numberOfCopies);
}
int main ()
{
printf("%f\n", colourPrinting(32, 1000));
return 0;
}
Значение, которое должно быть напечатано, равно 4154.8, но моя программа печатает 4154.799805. Я отладил код, и кажется, что при вызове jobPrice с параметром pricePerSheet, равным 0.04f, он меняется на 0.0399999991.
Любая помощь будет оценена.