-1

我想用 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。但我只能在点之后显示六位数字。

任何人都可以帮助我计算介电常数的正确方法。

4

2 回答 2

2

仅当您阅读过 C 运算符时...

运算符执行按位异或,这^不是您想要的。您需要使用标准库函数pow()from<math.h>来计算幂,或者使用科学记数法:

Co = 15.88E-12;

C = Cs / (1 + pow(tan(angle), 2));

另请注意,这不是数学,这是 C,你不能tan ^ 2(argument),你只能调用一个函数而不是数学符号中的“函数平方”......

于 2012-11-01T10:32:31.227 回答
0

您的问题是您认为数学表达式可以用 C 语言以相同的方式编写,这是不正确的。即使是相同的符号也有完全不同的含义。首先学习一点 C 语法。

于 2012-11-01T10:37:01.910 回答