在Java脚本中反转数字,但不使其成为字符串

2022-04-17 00:00:00 reverse javascript

有人能告诉我我的代码哪里出错了吗?我正在尝试在不将数字更改为字符串的情况下将其反转。我一直在谷歌上搜索,浏览了之前提出的关于这个话题的问题,从我所能看到的情况来看,我的代码反映了其他答案。

我只能在Java、C或C++中找到不使用TO字符串方法的代码。

在我的尝试中,当我在浏览器控制台中运行代码时,它要么给我一个"Infinity"的答案,要么让我的浏览器崩溃。

以下是我的代码...

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
function reverseNumber(number) {

  var revNumber = 0;

  while (number > 0) {
    revNumber = (revNumber * 10) + (number % 10);
    number = number / 10;
  }

  return revNumber;
}

console.log(reverseNumber(876));

我知道这一定是一些小的语法错误,但我就是看不出来。任何有见地的人都将不胜感激。谢谢!


解决方案

number = number / 10;while条件为number > 0的循环中,表示一旦数字精度失败,number在非常大的迭代次数后才会达到0。(例如,876=>87.6=>8.76=>.876=>.0876...)这不是你想要的。您可以除以10和去掉小数部分:

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
function reverseNumber(number) {
  var revNumber = 0;
  while (number > 0) {
    revNumber = (revNumber * 10) + (number % 10);
    number = Math.floor(number / 10);
  }
  return revNumber;
}
console.log(reverseNumber(876));

相关文章