 # ATM compiling error

My program is showing compiler error

Pooja would like to withdraw X \$US from an ATM. The cash machine will only accept the transaction if X is a multiple of 5, and Pooja’s account balance has enough cash to perform the withdrawal transaction (including bank charges). For each successful withdrawal the bank charges 0.50 \$US.
Calculate Pooja’s account balance after an attempted transaction.
Input

Positive integer 0 < X <= 2000 - the amount of cash which Pooja wishes to withdraw.
Nonnegative number 0<= Y <= 2000 with two digits of precision - Pooja’s initial account balance.
Output

Output the account balance after the attempted transaction, given as a number with two digits of precision. If there is not enough money in the account to complete the transaction, output the current bank balance.
Example - Successful Transaction

Input:
30 120.00

Output:
89.50
Example - Incorrect Withdrawal Amount (not multiple of 5)

Input:
42 120.00

Output:
120.00
Example - Insufficient Funds

Input:
300 120.00

Output:
120.00

Here’s my code

# #include

using namespace std;

int main()

`````` {

float x,y;

cin>>x>>y;

if(x%5==0&&y>x+0.5)

{

cout<<(y-x)-0.5;

}

else

cout<<y;

return 0;

}
``````

Here’s the error

prog.cpp: In function ‘int main()’:

prog.cpp:7:6: error: invalid operands of types ‘float’ and ‘int’ to binary ‘operator%’

if(x%5==0&&y>x+0.5)

`````` ^
``````

Can somebody help me

x is a float type value.You cant use modulo operator on float values

1 Like

What can I do to solve that problem?

Make x an int value and make y a float value.

`x` is always an integer so you can use `int` datatype and then use the `%` operator.

2 Likes

Ok I understand now.
Make x an int value and make y a float value.
Thanks for Knocking some sense into me. You have to subtract 0.50 from variable `y`, not `x`.