C 打印浮点时,如何更精确地打印小数点?

C 打印浮点时,如何更精确地打印小数点?,c,floating-point,printf,C,Floating Point,Printf,我对编码很陌生,我有一个非常基本的问题。我制作了一个程序来执行一个基本方程,并printf结果: #include <stdio.h> int main (void) { float f = (380 / 3); printf("%f\n", f); } #包括 内部主(空) { 浮动f=(380/3); printf(“%f\n”,f); } 然而,我得到的结果是126.000000。如何使我的程序更精确地打印小数点 如何使我的程

我对编码很陌生,我有一个非常基本的问题。我制作了一个程序来执行一个基本方程,并
printf
结果:

#include <stdio.h>

int main (void)
{
    float f = (380 / 3);
    
    printf("%f\n", f);
}
#包括
内部主(空)
{
浮动f=(380/3);
printf(“%f\n”,f);
}
然而,我得到的结果是
126.000000
。如何使我的程序更精确地打印小数点

如何使我的程序更精确地打印小数点

第1步,使用浮点FP数学,而不是整数数学

// float f = (380 / 3);      // int math
// float f = 380.0f / 3.0f;  // float math
double f = 380.0 / 3.0;      // double math
步骤2:指定大于默认值6的精度

int prec = 7;
printf("%.*f\n", pre, f);
。。。或者更好,使用指数表示法

printf("%.*e\n", FLT_DECIMAL_DIG, f); 
。。。。甚至十六进制

printf("%a\n", f); 

如何使我的程序更精确地打印小数点

第1步,使用浮点FP数学,而不是整数数学

// float f = (380 / 3);      // int math
// float f = 380.0f / 3.0f;  // float math
double f = 380.0 / 3.0;      // double math
步骤2:指定大于默认值6的精度

int prec = 7;
printf("%.*f\n", pre, f);
。。。或者更好,使用指数表示法

printf("%.*e\n", FLT_DECIMAL_DIG, f); 
。。。。甚至十六进制

printf("%a\n", f); 


您好@user202729,谢谢您的回答,我恐怕不太熟悉编程术语,您能解释一下这是什么意思吗?整数除以整数得到整数,舍去余数。这里有或,但它代表C。这能回答您的问题吗?您需要
380./3
,或
380/3.
,或
(float)380/3
,或
380/(float)3
。你好@user202729,谢谢你的回答,我恐怕不太熟悉编程术语,你能解释一下这是什么意思吗?整数除以整数得到整数,丢弃余数。有或,但它是C。这回答了你的问题吗?您需要
380./3
,或
380/3.
,或
(浮动)380/3
,或
380/(浮动)3