C中的数据类型,数据丢失

时间:2015-10-26 19:53:04

标签: c

#include <stdio.h>


int main()
{
int x;
float f1[11], f2[11], s;

for (x = 1; x <= 10; x++)
{
    f1[x] = (x * x) / 4;
    printf("f1(%d)=%.2f\n", x, f1[x]);

}

return 0;
}

f1 =(x ^ 2)/ 4

当前输出为:

f1(1)= 0.00

f1(2)= 1.00

f1(3)= 2.00 // etc

我有点想要那些小数。

f1(1)= 0.25

f1(2)= 1.00

f1(3)= 2.25

1 个答案:

答案 0 :(得分:1)

使用值执行的操作不会影响计算方式。因此,将某些数学结果存储在double中这一事实并不会改变您正在执行整数运算的事实。

有很多修复,但最简单的可能是(1.0 * x * x) / 4.0