打印结构的浮点值

时间:2014-09-19 13:19:30

标签: c

#include <stdio.h>      

struct testStruct
{
    int max;
    float y;
    float x;
};

int main()
{
    struct testStruct test;

    test.max = 50;
    test.y = 0.001;
    test.x = 0.05;
    printf("%i\n", test.max);
    printf("%i\n", test.x);
    printf("%i\n", test.y);
}

我创建了一个包含intfloat值的结构。当我由于某种原因打印值时,两个float值会打印一些垃圾值,如3539983而不是它们各自的值。任何人都可以解释为什么这是? int值打印正确。

3 个答案:

答案 0 :(得分:2)

您需要在printf中修改说明符:

printf("%d\n",test.max);
printf("%f\n",test.x);
printf("%f\n",test.y);

看看here

答案 1 :(得分:2)

printf("%i\n",test.max);
printf("%i\n",test.x);
printf("%i\n",test.y);

应该是

printf("%d\n",test.max);
printf("%f\n",test.x);
printf("%f\n",test.y);

答案 2 :(得分:0)

%d和%i在输出中使用时相同。 变化

printf("%f\n",test.x);
printf("%f\n",test.y);

用于打印您想要的结果