【发布时间】:2016-03-31 15:13:48
【问题描述】:
我在 c 中遇到了关于减号操作的问题。
printf("\nPlease enter your payment:\n", userpayment);
scanf("%.2f", &userpayment);
customerchange = userpayment - totalfinal;
printf("The amount of change is %.2f\n", customerchange);
我将userpayment 和totalfinal 声明为double。
例如,每当我输入价格时; userpayment = 2000 和 totalfinal 为 1500,输出将始终为 1500。
有什么办法解决这个问题?
这是输出:
输入商品价格: 500 输入项目数量: 3 支付总额为:RM1500.00 这是最后一项吗? 是的 已给予客户RM50现金回扣。 现金返还前的总付款为:1500 返现后的总付款为1450
请输入您的付款: 5000 你的零钱是 RM-14500.00
【问题讨论】:
-
货币不要使用双打
-
如果我们看看所有涉及的变量是如何声明的,会更容易提供帮助。
-
说真的,不要使用双打货币。我知道这不是您所要求的,但最佳做法是使用具有整数类型的次要单位,或使用专用数据类型来表示货币。浮点数适用于表示不需要特别准确的大量数字。将它们用于货币会迫使您在整个代码库中传播舍入错误检查和显式舍入。
标签: c