在 C 中计算百分比
Calculating percentages in C
我试图找出 C 中的百分比是如何计算的,特别是我试图找出你从用户输入中获得了多少税,如果税是 21%。
但是在终端中尝试输入代码后:130,
这意味着我想要 130 美元的 21%,它给我一个负值 -858993459
如何解决这个问题或我哪里出错了?
我的所有 google 搜索结果也是空的,但可能是因为我没有使用正确的措辞,所以欢迎提供所有信息。
#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));
}
尝试用“%lf”代替“%d”。 “%d”需要一个整数,这与变量类型“double”冲突。
您在 scanf
和 printf
中使用了错误的转换说明符。要使用 scanf
读取 double
值,您需要使用 %lf
并使用 printf
打印 double
值,您需要使用 %f
。
由于这些函数的工作方式,它们不知道您实际传递给它们的参数的数量、类型或顺序 - 它们只会看到堆栈上的一堆字节或大量的参数寄存器.让他们知道他们应该 期望 的参数的唯一方法是通过您在格式字符串中指定的内容。
%d
用于读取和打印int
类型,%c
用于单个字符,%s
用于字符串等
变量类型double
应该在scanf
函数中使用%lf
,在printf
函数中使用%f
。
我试图找出 C 中的百分比是如何计算的,特别是我试图找出你从用户输入中获得了多少税,如果税是 21%。
但是在终端中尝试输入代码后:130, 这意味着我想要 130 美元的 21%,它给我一个负值 -858993459
如何解决这个问题或我哪里出错了?
我的所有 google 搜索结果也是空的,但可能是因为我没有使用正确的措辞,所以欢迎提供所有信息。
#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));
}
尝试用“%lf”代替“%d”。 “%d”需要一个整数,这与变量类型“double”冲突。
您在 scanf
和 printf
中使用了错误的转换说明符。要使用 scanf
读取 double
值,您需要使用 %lf
并使用 printf
打印 double
值,您需要使用 %f
。
由于这些函数的工作方式,它们不知道您实际传递给它们的参数的数量、类型或顺序 - 它们只会看到堆栈上的一堆字节或大量的参数寄存器.让他们知道他们应该 期望 的参数的唯一方法是通过您在格式字符串中指定的内容。
%d
用于读取和打印int
类型,%c
用于单个字符,%s
用于字符串等
变量类型double
应该在scanf
函数中使用%lf
,在printf
函数中使用%f
。