郁闷死的问题~~~~~~~~~~~~~~~~~
来源:百度知道 编辑:UC知道 时间:2024/05/28 01:02:56
被%f搞糊涂拉。。。。。。。。。。。。。。。。。。。。
float d1 = 12345.123;
printf("%lf\n", d1);
printf("%13f\n", d1);
输出结果如下
12345.123047
空格12345.123047
printf("%lf\n", d1); %lf不是输入double类型的啊 double不是小数精确到15位啊 为什么会精确到6位数 ---> 12345.123047
printf("%13f\n", d1); %13f到底是什么意思啊?我看很多人说拉很多不同的回答 我晕拉....
我看拉输出 这么理解拉 float精确到6位数
所以12345.123输出就是--> 12345.123047 047随即产生
%13f 就是输出13位(这个13位到底包括小数点啊?)
12345.123047 一共有12位(包括小数点) 所以不足13位 前面会有个空格
float到底精确到7位还有6位啊?为什么 我在baidu上搜问题的时候
有的人说是精确到6位 有的说是精确到7位啊?
希望各位大侠能完整回答上面问题 我是菜鸟
希望能有大侠发下QQ 我好有问题时候请教请教
float d1 = 12345.123;
printf("%lf\n", d1);
printf("%13f\n", d1);
输出结果如下
12345.123047
空格12345.123047
printf("%lf\n", d1); %lf不是输入double类型的啊 double不是小数精确到15位啊 为什么会精确到6位数 ---> 12345.123047
printf("%13f\n", d1); %13f到底是什么意思啊?我看很多人说拉很多不同的回答 我晕拉....
我看拉输出 这么理解拉 float精确到6位数
所以12345.123输出就是--> 12345.123047 047随即产生
%13f 就是输出13位(这个13位到底包括小数点啊?)
12345.123047 一共有12位(包括小数点) 所以不足13位 前面会有个空格
float到底精确到7位还有6位啊?为什么 我在baidu上搜问题的时候
有的人说是精确到6位 有的说是精确到7位啊?
希望各位大侠能完整回答上面问题 我是菜鸟
希望能有大侠发下QQ 我好有问题时候请教请教
1.事实上,%lf和%f是等价的。
2.关于精度问题,C语言本身对此并没有做统一的规定,而是由机器特性决定的
3.关于%13f的问题,13表示输出的列宽,如果实际的长度没有这么大,则在左端填充空格,如果实际宽度超出此值,则以实际情况输出。
c语言后面会自己补充一位/0的
%13f 自然是取13位浮点数.
就是输出数值总长度为l,整数个数加小数个数,不足补空,右顶格起
double是可以计算到小数点后15位,不是精确到。
按照机器性的
意思就是 不同的电脑的精度不同