我对c的减号操作有问题。

printf("\nPlease enter your payment:\n", userpayment);
scanf("%.2f", &userpayment);

customerchange = userpayment - totalfinal;
printf("The amount of change is %.2f\n", customerchange);

我声明userpaymenttotalfinaldouble
当我输入价格时,例如,userpayment = 2000totalfinal是1500,输出总是1500。
解决这个问题的办法是什么?
这是输出:
输入项目的价格:
五百
输入项目数量:

付款总额为:1500.00令吉
这是最后一件吗?
是的
已向客户提供Rm50现金回扣。
现金回扣前付款总额:1500
现金回扣后的付款总额为1450
请输入您的付款:
五千
您的找零是14500.00室

最佳答案

如果“userpayment”定义为double,则更改

scanf("%.2f", &userpayment);


scanf("%lf", &userpayment);

或者将变量改为float。
现在,你正在扫描一个浮点数到一个double的内存中,这会导致不可预测的行为。

10-08 07:09