【发布时间】:2021-01-25 11:42:05
【问题描述】:
我试图找出 C 中的百分比是如何计算的,特别是我试图找出你从用户输入中获得了多少税,如果税为 21%。
但在终端中尝试输入代码后:130, 这意味着我想要 130 美元的 21%,它给了我一个负值 -858993459
如何解决这个问题或我哪里出错了?
我所有的谷歌搜索也都是空的,但可能是因为我没有使用正确的措辞,所以欢迎所有信息。
#include <stdio.h>
double get_tax_amount(double price_including_taxes)
{
return price_including_taxes *0.21;
}
int main()
{
printf("What was your price? ");
double price;
scanf("%d", &price);
printf("The tax price is: %d", get_tax_amount (price));
}
【问题讨论】:
-
scanf("%lf", &price);和printf("The tax price is: %f\n", get_tax_amount(price)); -
两者有什么区别?你能解释一下为什么我必须使用 %lf 而不是 %d 吗?
-
你的书/讲师应该把这一切都说清楚。如果你想阅读规范 ==> here's an HTMLized freely available version of a draft of the C11 Standard
-
%d用于int和%lfinscanf用于double。它在你的 C 教科书中。如果你还没有,是时候买一个了。 -
欢迎来到 SO。如果你没有从你的编译器中得到一些警告,你应该调高警告级别。对于 GCC,您可以使用
-Wall -Wextra来实现。