所以我有一个像5467这样的数字。我希望我的代码返回546.
我尝试取最后一个数字并从原始数字中减去它但我得到的是5460而不是546。
答案 0 :(得分:2)
将/
与%
结合使用:
(5467 - (5467 % 10)) / 10
564
答案 1 :(得分:2)
如果字符串表示对你没问题,那么另一种方法是
var num = 5467,
cut = (num/10).toFixed(); // <-'547'
嗯......警告..!如有必要,我必须说toFixed()
方法轮次。所以在这个特定的例子中,它不起作用。
答案 2 :(得分:1)
听起来你也需要划分我的10.你可以这样做:
var number = 5467;
number = number - (number % 10); // This will subtract off the last digit.
number = number / 10;
console.log(number); // 546
我们首先使用模运算符%
来获取最后一位数字,然后从number
中减去它。这会将数字从5467减少到5460.现在要切掉最后一位数(保证为0),我们除以10得到546。
写得更简洁,你可以做到:
number = (number - ( number % 10)) / 10;
答案 3 :(得分:1)
你可以做一些最简洁的事情:
Math.floor(num / 10);
或者,转换为字符串,删除最后一个字符并转换回数字。
parseInt(num.toString().slice(0, -1));
答案 4 :(得分:0)
我不介意其他一些答案,但我觉得这可能太固定了它是一个数字。
它是什么,但你想删除最后一位数字/字符,无论数字如何,为什么不删除?
http://www.w3schools.com/jsref/jsref_substr.asp
var s = 5467;
s = s.toString().substr(0, s.toString().length - 1);
console.log(s)
甚至更容易:
var s = (5467).toString();
s = s.substr(0, s.length - 1);
console.log(s)
这些不考虑单个数字,因此传入1将返回空白。要回答这个问题,你可以简单地做一下检查:
var s = (1).toString();
if(s.length > 1)
s = s.substr(0, s.length - 1);
console.log(s)
此外,类似的问题:
Remove last digits from an int
答案 5 :(得分:0)
要从右侧截断数字直到数字小于30,请保持除以10并向下舍入,直到达到合适的值:
var n = 12341235;
while (n > 30) n = n/10|0;
document.write(n);
&#13;
大于和除法操作会将 n 强制转换为数字,因此它可以是数字或字符串。如果ToNumber(n)
导致 NaN (例如n = 'foo'
),则 n 的值不会被修改。
答案 6 :(得分:0)
您可以简单地将数字除以10和parseInt()
var num = 5467;
num = parseInt(num/10);
更新:
要重复此过程直到答案小于30,请使用while
循环
var num = 5467;
while(num >= 30) {
num = parseInt(num/10);
}
document.write(num);