我创建了一个类似 ATM 的程序,可以将钱存入一个人的帐户。当此人取款时,它会从帐户中扣除取款以及 0.50 的附加费。我遇到的问题是在这个程序中同时使用整数和 float 。我将整数帐户转换为 float ,但当我尝试打印该语句时收到错误消息。谁能告诉我我做错了什么?
#include <stdio.h>
int main (void) {
int account = 2000;
int withdrawal;
float charge = 0.50;
printf ("How much money would you like to take out? ");
scanf ("%i", &withdrawal);
while (withdrawal % 5 != 0) {
printf ("Withdrawal must be divisible by 5. ");
scanf("%i", &withdrawal);
}
account = ((float) account - charge) - withdrawal;
printf("Remaining account: %.2f\n", account);
return 0;
}
最佳答案
int account = 2000;
printf("Remaining account: %.2f\n", account);
这是错误的;对于整数,它应该是 "%d"
,或者更好,将您的 account
变量类型更改为可以代表您要收取的 0.50 的变量类型。我也不建议您使用(不精确的)float
来赚钱。当您的意思是 10.5
时,您不想撤回 10.499999997
。您需要考虑要使用的精度和舍入规则。据我所知,这些都是法律或其他规定的。
关于c - 使用 float 和整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8886400/