c语言如何输入1e-8

Python026

c语言如何输入1e-8,第1张

LS回答有误,我可以帮你解决这个问题。

本题是采用微积分中的麦克劳林公式求解自然底数e的值。

LS的语法有误,运行结果也不对。

首先,你应该把所有的变量都设置为float型,如果采用int型,在运算过程中将会不断取整数;其次,你的主函数是int型,所以在末尾需加上一个说明返回值的语句,例如return 0。

1e-6表示1乘以10的负6次方。

Math.abs(x)&lt1e-6其实相当于x==0

1e-6(也就是0.000001)叫做epslon,用来抵消浮点运算中因为误差造成的相等无法判断的情况。它通常是一个非常小的数字(具体多小要看你的运算误差)

比如说因为精度误差,用十进制举例,我们要算1/3+1/3+1/3==1(从数学上说,肯定相等),但是因为精度问题,等号左边算出来是0.3333333+0.3333333+0.3333333=0.9999999,

存在了误差,右边是1.0000000,那么如果直接用==,返回false,我们希望它被视作相等。那么就要两数相减取绝对值小于epslon的办法。

扩展资料:

Math.abs()返回参数的绝对值。参数可以是int,float,long,double,short,byte类型。

语法

各个类型的方法格式类似如下:

double abs(double d)

float abs(float f)

int abs(int i)

long abs(long lng)

参数

任何原生数据类型。

返回值

返回参数的绝对值。

实例

public class Test{

public static void main(String args[]){

Integer a=-8

double d=-100

float f=-90

System.out.println(Math.abs(a))

System.out.println(Math.abs(d))

System.out.println(Math.abs(f))

}

}

编译以上程序,输出结果为:

8

100.0

90.0

printf中,%f通杀单精度和双精度,%f和%lf效果是一样的。

在scanf中,%f和%lf才有区别。

e等价于E,所以1e-8和1E-8等价,而不是1E8,少了个-号。