如何返回不包括最后一位数字的数字?

时间:2016-05-12 00:44:22

标签: javascript

所以我有一个像5467这样的数字。我希望我的代码返回546.

我尝试取最后一个数字并从原始数字中减去它但我得到的是5460而不是546。

7 个答案:

答案 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

Remove the last digits of a number (not string)

Removing the last digits in string

答案 5 :(得分:0)

要从右侧截断数字直到数字小于30,请保持除以10并向下舍入,直到达到合适的值:

&#13;
&#13;
var n = 12341235;

while (n > 30) n = n/10|0;

document.write(n);
&#13;
&#13;
&#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);