在 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”冲突。

您在 scanfprintf 中使用了错误的转换说明符。要使用 scanf 读取 double 值,您需要使用 %lf 并使用 printf 打印 double 值,您需要使用 %f

由于这些函数的工作方式,它们不知道您实际传递给它们的参数的数量、类型或顺序 - 它们只会看到堆栈上的一堆字节或大量的参数寄存器.让他们知道他们应该 期望 的参数的唯一方法是通过您在格式字符串中指定的内容。

%d用于读取和打印int类型,%c用于单个字符,%s用于字符串等

变量类型double应该在scanf函数中使用%lf,在printf函数中使用%f