如何仅获取数字中的最后一位?

4

如何分离数字中的最后一位?

例如,我有一个名为number的变量,它的值为27,我想要的是7。

(这个数字永远不会超过99。)


1
请看 % 运算符。 - AntiHeadshot
1个回答

15

如果你想要一个数字,使用% 10来数值化地隔离个位数:

var onesOnly = number % 10;
如果您想获得一个字符串,可以将数字转换为字符串并使用.substr(-1)仅获取最后一位数字:

string ,您可以将数字转换为字符串并使用.substr(-1)只获取最后一位数字:

var lastDigit = String(number).substr(-1);
注意:两种方法在处理非常大的数字时都会不可靠(由于不同的原因)。如果您的数字永远不会超过99,那么这不是一个问题,但如果其他人使用相同的技术处理大量数字,则值得注意:
数值法可能会遇到一个事实,即JavaScript的数字是IEEE-754双精度浮点数(“double”),即使它们是整数。 双精度可以容纳的最大可靠整数值为9007199254740991,之后我们就会用完重要位,即使在整数级别上也开始变得不准确:9007199254740993%10是2而不是3,因为双精度无法精确地保存值9007199254740993。
文本方法则受科学计数法的影响:非常大的数字将使用科学计数法将其转换为字符串。例如,5823548469823234783234852会转换为"5.823548469823234e+24"。因此,String(5823548469823234783234852).substr(-1)给我们4而不是2
当然,当您遇到科学计数法问题时,您已经处理了如此不准确的数字(第一个问题),以至于它是次要问题。

CW答案值得赞扬 - James Thorpe
@T.J.Crowder 是的,目前这可能是最好的方法。无法阻止这些问题被回答,不妨以一种至少能解决一半问题的方式来做 :) - James Thorpe

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