sma*_*Dog 2 javascript reverse
有人能告诉我我的代码出错了吗?我试图反转一个数字而不将其改为字符串.我一直在搜索谷歌,并查看以前有关此主题的问题,从我可以看到我的代码镜像其他答案.
我只能在Java,C或C++中找到不使用to string方法的代码.
在我的尝试中,当我在浏览器控制台中运行代码时,它会给我一个"Infinity"的答案或者崩溃我的浏览器.
这是我的代码......
function reverseNumber(number) {
var revNumber = 0;
while (number > 0) {
revNumber = (revNumber * 10) + (number % 10);
number = number / 10;
}
return revNumber;
}
console.log(reverseNumber(876));Run Code Online (Sandbox Code Playgroud)
我知道它必须是一些小的语法错误,但我只是没有看到它.任何见解将不胜感激.谢谢!
number = number / 10;一个内部while循环,其条件是number > 0意味着number只是将一个非常大的数量的迭代后达到0,一次的数字精度失败.(例如,876 => 87.6 => 8.76 => .876 => .0876 ......)这不是你想要的.您可以除以10 并删除小数部分:
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));Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2305 次 |
| 最近记录: |