C语言中怎样尽量多得输出数值准确位数?

来源:百度知道 编辑:UC知道 时间:2024/06/10 11:09:15
#include<stdio.h>
void main()
{
printf("%g\n",6./3);
printf("%g\n",4./3); //必须加点,否则为整型,结果也该是整型,而前边是%g,不搭配,该出错了
printf("%d\n",5/2);
}

//%g或%G:以%f或%e中较短的输出宽度输出单、双精度实数,不输出无意义的0,用“G”时,则指数以大写表示

//用格式字符控制只能输出有限位,怎样输出想要几位就输出几位,或者尽量多得输出准确位数呢
用f加控制字符也行,但有点麻烦。用数组可能行吧,就是还没学

printf("%.10f\n",6./3);

干嘛要用%g啊,用f就可以了啊,右边可以像上面那样,也可以
printf("%.10f\n",6*1.0/3);
主要是注意类型转换就可以了,最后再以 浮点型打印出来,
比如printf("%5.6f\n",6*1.0/3); 就表示最后打印一个浮点数,左边有效数字为5伟,右边有效数字为6伟,想要精度,自己改一下就可以了

C++可以。逻辑上很简单,只是把准确有效数字后面的0去掉,但是C里面没实现。

如果你一定想要浮点数转字符串的算法不怕麻烦我倒是可以跟你说bbb

高精度数,可以考虑使用数组,自己实现相关的计算

嘿嘿
我知道了,我帮你搞定啦!其实你的程序没错啊!
“//必须加点,否则为整型,结果也该是整型,而前边是%g,不搭配,该出错了 ”删掉。输出结果为:
2
1.33333
2
如果你要输出的结果要尽量的精确的话就定义变量的类型为float或者double。