请问如何在脚本进行平方根运算
请问如何在脚本进行平方根运算,只有基本运算+ - * :这游戏都很少出现浮点运算的,脚本我到现在都没用过。
基本都是整数加减乘除基本四则运算,偶尔用用余数。
搬个板凳,等大神开课。;keilai; 可以通过循环迭代的方法逼近一个浮点近似值
!?FU(SqureRoot_iter);[已验证]
{
*x1=输入值
*v1存整数值,e1存小数值
!!FU:A?k;count function arguments
!!VRe11:S1;[初始根值]
!!VRe12:S2;[初始增长倍数]
!!VRe20:Sx1;[目标平方值]
!!re i/0/100/1;[最多100次迭代]
!!VRe13:Se11*e11;
!!VRe21:Se13-e20;[误差=e21]
!!br&e21>-2/e21<2:;[精度达到]
!!if&e21<=-2:;
!!VRe11:*e12;[增长]
!!el&e21>=2:;
!!VRe11::e12;[抵消上次增长]
!!VRe12:-1:2+1;[倍率减半]
!!VRe11::e12;[缩短]
!!en:;
!!en:;
!!VRe1:Se11; [输出小数]
!!VRe11:+0.499;
!!VRv1:Se11; [输出整数数]
}
不过在era3的标准库中已经有了FU(sqrt)函数,它调用的是外部的数学库。 ERA 3中非常简单粗暴,举个例子:!?FU(OnAfterErmInstructions);
!!VR(value:y):S16;
!!VR(valueFloat:e):S(value);
!!FU(Sqrt):P(valueFloat)/?(valueSqrtFloat:e);
!!VR(valueSqrt:y):S(valueSqrtFloat);
!!IF:M^%(valueSqrt)^; 输入value,转换为浮点数,用FU(sqrt)进行浮点数开方运算,转换为整数,输出valueSqrt(即value的平方根)
页:
[1]