c++中要求数据保留到8位小数的话应该用那种数据类型啊,不是double型

来源:百度知道 编辑:UC知道 时间:2024/05/16 03:15:14
嗯,不知道为什么,是一个迭代数列的题目,要求就要精确到8位小数,可是用double都不行

数据类型是double
输出为cout<<precision(8)<<XX;

double都不行??

cout.precision(8);
然后输出cout<<XX;

可以试一试long double.
不过,C++讨论的是有效位,小数点后有8位,但小数点前有20位,那就不可以了,因为有效位是28位了. 如果只是小数点后的话,long double是可以的.

如果不可以的话,只能用fortran写程序了,fortran支持任意精度的数.

float 数本身精度是7位有效数字,double 精度是15位有效数字.

迭代要求就要精确到8位小数,用double不行,应当是迭代方法有问题.

如果是分段收敛函数,你应当分段迭代,初值要在区间内.
收敛条件要用前后两次结果的误差的绝对值判断,而不是用简单的差值判断.