在JavaScript中删除数字的最后一位

5

我需要获取一个数字,去掉最后一位然后返回它

例如,给出数字12345,返回1234

这是最好的方法吗:

let x = 12345
const y = x.toString().split('').slice(0, -1).join('')
const newNum = Number(y)

还有没有不使用常量newNum,而是直接在上面的字符串中将其转换回数字的方法?


5
你可以将这个数除以10,然后调用Math.floor()函数。 - Pointy
5个回答

19

这是另一种实现的方式

console.log(
    Math.floor(12345 / 10) // -> 1234
)


2
@zfrisch 可能会有影响,但考虑到这个问题非常简单,我认为理解起来可能有点过于复杂。 - A Rather Long Name
2
这不是很复杂吧?Math.floor(12345 / 10) 或者 12345 / 10 | 0 最终得到的结果是一样的。如果有人不理解,他们可以去了解一下。这就是学习这些东西的方式。 - zfrisch
3
我同意@zfrisch的说法,这就是学习如何做这些事情的方法,但我认为更重要的是理解你所做的事情是如何工作的,而不仅仅是去做它。由于原帖明显不知道Math.floor(12345 / 10),我认为向他们介绍位运算符以及如何将浮点数转换为有符号32位整数可能有点过头了。此外,因为它只能工作到2^31-1,所以它并不总是会给出相同的结果。 - A Rather Long Name
1
@ARatherLongName 我知道,但我提供的是额外的信息,而不是你答案的替代方案。 - zfrisch
这个解决方案似乎对以下输入不起作用:Math.floor(11111111111111111111111111111101 / 10)。结果变成了:1.1111111111111112e+30 - Reggie Escobar
显示剩余2条评论

5

简单:

console.log(12345 / 10 ^ 0)


0
使用parseInt()将字符串转换为数字,并使用substring获取整个数字减去最后一位。
return parseInt(x.toString().substring(0, x.toString().length - 1));

0
将数字放入括号()中以使用.slice()

let x = 12345
const newNum = (x).toString().slice(0, -1)
console.log(newNum)
console.log(newNum * 1000)


现在它是一个字符串而不是一个数字。 - Richard

0
你可以将代码重构为这样

let x = 12345
const newNum = Number(x.toString().slice(0, -1))
console.log(newNum)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接