负数在Javascript中给出错误NaN

时间:2019-09-01 16:11:02

标签: javascript math negative-number

我正在尝试编写有关将数字更改为其立方根的代码,但是每当输入负数时,都会收到NaN错误。

试图使用字符串对称为Number的函数进行编号

let number = prompt("Enter a number");
if (number > 0 || number < 0){
    let x = number**(1/3);
    alert(x);
}
else if (number == 0){
    alert(number);
}
else{
    alert("Error");
}

例如,我输入-8,我希望它会给我-2,但我收到NaN

1 个答案:

答案 0 :(得分:0)

这是因为负数的立方根与负的实数一起具有复数作为解,因此必须编写一个简单的逻辑来获得负的实数:

function cubeRoot(number){
   const isNegative =  number < 0;
   const cubeRoot =  Math.pow(Math.abs(number), 1/3);
   return isNegative ? -cubeRoot : cubeRoot;
 }
 console.log(cubeRoot(-8));
 console.log(cubeRoot(0));
 console.log(cubeRoot(8));

有一个可用于执行此操作的库:math.js

console.log(math.cbrt(-8));
console.log(math.cbrt(0));
console.log(math.cbrt(8));
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/6.2.1/math.js"></script>

相关问题