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
。