问你
我用VBA编了一个 程序,用作 螺旋桨 画图,但在定义一个用于计算切线的函数时,发生了“除数为零”的现象,在函数内的除数全是“行参”,不存在“定义时赋值为零”的情况,我想问一下大家:是不是在引用时发生的“除数为零”,或还有 其它的什么原因?请各位给我提提建议。祝大家过年快乐!回复
贴上你的代码.可能是参数没有正确地传递过来吧! 如果sin(0) 那么sin(360) houlinbo发表于2005-2-24 22:32:00static/image/common/back.gif如果sin(0) 那么sin(360)
<BR>Sin函数里面的参数是以弧度表示的,而且0是在Sin的定义域里面,并不回出除0的问题。
360如果是弧度的话算算出来可就不是0了 S = 3.141592654 * (d - t)<BR>TT = S / m<BR>BB = B / (n - 1)<BR>H = 2 * R * Tan(3.141592654 / (180 / (BB / 2)))<BR>aa = 0<BR>For i = 1 To m / 2 + 1<BR>If aa = 0 Then aa = 360<BR>If aa = 90 Then aa = 450<BR>If aa >= 0 And aa <= 90 Or aa = 360 Or aa = 450 Then<BR>ln = (d - 2 * t) * Tan(3.141592654 / (180 / (BB / 2))) * Cos(3.141592654 / (180 / aa)) / 2 + H / 2<BR>End If<BR>If aa > 90 And aa <= 180 Then<BR>ln = d * Tan(3.141592654 / (180 / (BB / 2))) * Cos(3.141592654 / (180 / aa)) / 2 + H / 2<BR>End If<BR>If aa = 360 Then aa = 0<BR>If aa = 450 Then aa = 90<BR>point1(0) = 3 * S + rrr<BR>point1(1) = 0<BR>point1(2) = 0<BR>point2(0) = 3 * S + rrr<BR>point2(1) = ln<BR>point2(2) = 0<BR>Set plineobj = ThisDrawing.ModelSpace.AddLine(point1, point2)<BR>ThisDrawing.Application.ZoomAll<BR>next i
通过以上例子也许你能理解我 Pi的更精确值应为4*atn(1)。
页:
[1]