浮点到字符串转换-JS

时间:2019-01-29 18:39:55

标签: javascript algorithm floating-point type-conversion numbers

所以我目前正在使用该功能

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. value.toFixed(2)

希望得到答案

谢谢!

3 个答案:

答案 0 :(得分:1)

第一个选项对我有用

<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>

答案 1 :(得分:1)

这个问题真的很有趣。之所以使用它的return NaN是因为当您以n的形式返回String时,由于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
    }

答案 2 :(得分:0)

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

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));