簡體   English   中英

計算混亂

[英]Confusion in calculation

該程序計算折扣。 如果我將變量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);
    }

}

由於整數除法,將priceperitem更改為int將得到不同的結果。

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

discount=quantity*priceperitem*10/100f;

如果從int更改為float,則不會考慮小數位,也許這是由於整數除法而導致的答案更改

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM