平方根计算

时间:2014-03-14 06:11:50

标签: actionscript-3 flex flex4.5

想要计算给定输入的平方根,所以我使用了这段代码

var no1:Number = 2;
var no2:Number; //input for calculation
var total:Number;
total=Math.pow(no2,(1/no1));

它的工作,但我遇到的问题,如: - 如果我给

  

no2 = 25;

然后显示

  

总= 4.9999999

克服了我在代码下面使用的问题

  

总= Math.ceil(Math.pow(NO 2,(1 / NO1)));

但它的25岁。

  

总计= 5

问题是如果我给21,22,23,24

对于所有这些输入它显示5

还有其他解决方案???

3 个答案:

答案 0 :(得分:1)

There's a function for that

var total:Number = Math.sqrt(no2);

答案 1 :(得分:1)

如果你想取第n个根。您可以将函数的输出提供给任意舍入函数,如下所示:

/**
 * Rounds input number to specified number of decimal places. For example
 * round(4.568, 2) will return 4.57, and round(4.99, 2) will return 5.
 */
function round(num:Number, toDecimalPlaces:uint) {
   var factor:uint = Math.pow(10, toDecimalPlaces);
   return Math.round(num * factor) / factor;
}

/**
 * Returns nth root to two decimal places.
 */
function nthRoot(n:uint, num:Number) {
   return round(Math.pow(num, (1 / n)), 2);
}

答案 2 :(得分:0)

我的实际代码是这样的

var str:String=view.numDisplay.text;//input string
var power:Number = Number(inString.charAt(inString.indexOf('√') - 1));//to get the value before √ i.e no1
var no1:Number;
var no2:Number;
var total:Number;
if(power)
   no1=v;
else
   no1=2;
no2=getSubTerm();//method to find no2 it returns the number for calculation
total=Math.ceil(Math.pow(no2,(1/no1)));