【问题标题】:Why can't my float variable store numbers after the decimal point? [duplicate]为什么我的浮点变量不能存储小数点后的数字? [复制]
【发布时间】:2020-03-26 04:59:34
【问题描述】:
#include <stdio.h>
main()
{
    int c=2,n=5;
    float percent;
    percent=(c/n)*100;
    printf("%.3f\n",percent);
}

请问这段代码有什么问题..?

【问题讨论】:

标签: c variables floating-point


【解决方案1】:
       percent=(c/n)*100;

       2/5    ---> 0 because it is integer division 
       0*100  ---> 0 

是整数除法,所以可以改成

       percent=((float)c/n)*100;

       2/5     ----> 0.4
       0.4*100 ----> 40.0

【讨论】:

    【解决方案2】:

    你正在做整数除法。它总是截断值。确保先转换其中一个,然后它将使用浮点除法。

    #include <stdio.h>
    int main()
    {
        int c=2,n=5;
        float percent;
        percent=((float)c/n)*100;
        printf("%.3f\n",percent);
    }
    

    【讨论】:

      【解决方案3】:

      整数之间的除法运算产生另一个整数。由于 c、n 和 100 是整数,因此您会得到一个整数作为 .0 的结果,因为类型被声明为浮点数。这里的其他答案应该会产生您想要的答案。

      【讨论】:

        猜你喜欢
        • 2011-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-26
        • 2011-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多