-1

该程序计算折扣。如果我将变量 priceperitem 更改为 int 并在代码中进行必要的更改(格式说明符等),计算折扣的语句给了我完全不同的答案。谁能解释这背后的逻辑。我已经努力但不能明白怎么了??..它可能与运算符的关联性有关..还是只是除法的事情......???

#include<stdio.h>

main()
{
    int quantity;
    float priceperitem,expense,discount;

    printf("Price Per Item =");
    scanf("%f",&priceperitem);

    printf("How much quantity do you want =");
    scanf("%d",&quantity);

    if(quantity>1000)
    {
        discount=quantity*priceperitem*10/100;
        printf("The discount is %f\n",discount);
        expense=quantity*priceperitem - discount;
        printf("The discounted price is %f",expense);
    }

}
4

2 回答 2

3

由于整数除法,更改priceperitemto将给出不同的结果。int

改变discount=quantity*priceperitem*10/100;

discount=quantity*priceperitem*10/100f;

于 2013-05-05T15:50:36.963 回答
0

如果它从 int 变为 float 它不会考虑小数位,也许这是由于整数除法变化而导致的答案变化

于 2013-05-05T15:51:16.740 回答