浮点到字符串的转换 - JS.



所以我目前正在研究这个函数

const countSixes = n => {
  if (n === 0) return 0;
  else if (n === 1) return 1;
  else n = (countSixes(n-1) + countSixes(n-2)) / 2;
  return n;
}

所以我的问题是如何将最终浮点值转换为字符串?

每次调用函数并尝试转换浮点数后,它都会返回 NaN


我尝试过什么

  1. " + 值
  2. 字符串(值)
  3. value.toString()
  4. 值固定(2)

希望得到答案

谢谢!

第一个选项对我有用

<script>
const countSixes = n => {
  if (n === 0) return 0;
  else if (n === 1) return 1;
  else n = (countSixes(n-1) + countSixes(n-2)) / 2;
  return n;
}
alert(countSixes(12) + "")
</script>

这个问题真的很有趣。它return NaN因为当您返回nString ,因为function是递归调用的,因此它无法在下一级别执行算术运算。
对于像55这样的某些数字,它永远不会结束

function countSixes(n,firstTime=true){
        if (n === 0) return 0;
        else if (n === 1) return 1;
        else n = (countSixes(n-1,false) + countSixes(n-2,false)) / 2;
        if(firstTime) return n.toFixed(10);    // return string
        else return parseFloat(n.toFixed(10));      // return float
    }

您可以将最终值转换为具有所需小数的字符串。

const countSixes = n => {
    if (n === 0) return 0;
    if (n === 1) return 1;
    return (countSixes(n - 1) + countSixes(n - 2)) / 2;
}
console.log(countSixes(30).toFixed(15));

最新更新