① C语言 科学计数法问题
精度不够
2.23456789123456789123456789 e 20
2.23456789123456770000
223456789123456760000.000000
第二个数是a输入后的打印结果,double支持不了这么多精度。不要输入精度这么高的就没有问题。
② c语言用单精度浮点数输出科学计数法的问题,求高手来
float的精度问题啊,float只有四个字节,精度很低。
如果你的程序是由double就可以保障比较高的精度了,但也不是绝对的精度,浮点数存储,永远有精度范围,不是绝对精度(和int整数类型不一样)#include
main()
{
doublet=3e+12;
printf("t=%lf
",t);/*此处输出双精度浮点数*/
}
③ c语言程序设计,科学计数法的问题
1)float接受十进制数字作为赋值时精度只有6位有效数字,即:
float f = 0.339062543;
std::cout<
则输出是0.339063
2)double接受十进制数专字作为赋值时精度属有15位有效数字,如果想在输出时改变输出精度,可以有很多办法,例如使用setprecision():
double d = 0.339062543787323;
std::cout<<:setprecision>
setprecision()在