I'm solving cs50 pset1, I need first 2 decimal places. I'm trying to get it by converting the float I get from the user to int, then substracting it from float and then multiplying by 100 to get 2 decimal places
for ex input 9.41 after subustracting i get .410000 but when multiplying by 100 i get 40.9999 as output whereAS I need exact 41 so i can convert to int
#include<stdio.h>
#include<cs50.h>
#include<math.h>
int main(void)
{
int i = 0;
float number = get_float("Enter change: ");
printf("%f \n",number);
int integer = (int)number;
printf("%i \n",integer);
float change = number - integer;
printf("%f \n",change);
change = change * 100;
printf("%f \n",change);
int n = (int)change;
printf("%i \n",n);
}
expected:
Enter change: 9.41
9.410000
9
0.410000
41.000000
41
actual:
Enter change: 9.41
9.410000
9
0.410000
40.999985
40