C 屏幕上显示的输出与原始结果不匹配

C 屏幕上显示的输出与原始结果不匹配,c,integer,output,printf,C,Integer,Output,Printf,我是C语言的初学者 我在下面的代码中遇到了一些问题:- 代码 输出应该是4.347,但在这里,输出是4.000000 我应该怎么做才能得到4.347而不是4.000000?'b'是int类型的,因此它将只存储4,并且由于您在打印中使用float,它将值4显示为4.000000。将b的数据类型更改为浮点或双精度 int a=7,b; 应改为 int a=7;float b; 您需要将int类型更改为double类型,它可以包含十进制数 int main() { double a=7 ,

我是C语言的初学者

我在下面的代码中遇到了一些问题:-

代码

输出应该是4.347,但在这里,输出是4.000000


我应该怎么做才能得到4.347而不是4.000000?

'b'是int类型的,因此它将只存储4,并且由于您在打印中使用float,它将值4显示为4.000000。将b的数据类型更改为浮点或双精度

int a=7,b;
应改为

int a=7;float b;

您需要将int类型更改为double类型,它可以包含十进制数

int main()
{
    double a=7 , b;
    b = a*0.621;
    printf("%f",(b));
    return 0;
}

输出:4.34700

不要添加不相关的标签和相关代码的图像。将乘法结果分配给b,b是int类型,因此它会被截断。铸造b后使其浮动无法恢复部分。它必须是浮动b;对不起,我犯了错误。实际上,这是我第一次遇到堆栈溢出,这就是为什么我不知道发布问题的规则。我尽力编辑我的问题并使其正确。我再次为我的错误向你们道歉感谢你们花时间解决我的疑问。感谢你们花时间解决我的疑问。如果我的回答对你们有帮助,请向社区确认。
int main()
{
    double a=7 , b;
    b = a*0.621;
    printf("%f",(b));
    return 0;
}