我想用C程序来计算某些物资的介电常数。计算介电常数的公式是
E= Cx/Co;
Co= 15.88pF = 15.88*10^-12;
Cx=1/W.C;
W= 2*pi*f=2*pi*250000;
C= Cs/(1+tan^2(theta));
Cs=1;
theta=0 degree;
我试图用C代码实现上面的公式。
float E, Cx, Co= 15.88*10^-12;, Cs=1.0; f=250*10^3,Pi=3.14,theta=0.0;
angle= theta/180*pi; // to convert degree to radians
W= 2*pi*f;
C= Cs/(1+tan^2(angle));
Cx=1/W.C;
E= Cx/Co;
printf("permitivity value: %.10f",E);
我对像
这样的权力值的表示感到困惑10 ^ -12,tan ^ 2(角度)。
我代表的方式是否正确?我没有得到我手动计算的确切值。有没有更好的方法来表示功率值?我希望在点之后显示10位数的浮点值,如0.0000000000。但是我能够在点之后只显示六位数。
任何人都可以帮助我正确计算公差。
答案 0 :(得分:2)
只有你读过C操作员......
^
运算符执行按位XOR,这不是您想要的。您需要使用pow()
中的标准库函数<math.h>
来计算功效,或使用科学记数法:
Co = 15.88E-12;
C = Cs / (1 + pow(tan(angle), 2));
另请注意,这不是数学,这是C,而不能写tan ^ 2(argument)
,您只能调用函数而不是数学符号中的“函数平方”。 ..
答案 1 :(得分:0)
你的问题是你认为数学表达式可以在C中以相同的方式编写,这是不正确的。即使是相同的符号也有完全不同的含义。首先学习一些C语法。