从整数中删除最后一位数字

Remove last digits from an int

本文关键字:最后一位 数字 删除 整数      更新时间:2023-09-26

似乎找不到这个问题的好答案。如何从int中删除最后11位数字?

id的开头可以是一个或多个数字,但id后面总是有11位数字。开头总是有一个id。CCD_ 1。

var getId = function (digits) {
   // Do some stuff and return id
}
getId(110000000001); // Should return 1
getId(1110000000001); // Should return 11
getId(2010000000001); // Should return 20

除以1e11并发言:

var stripped = Math.floor(id / 1e11);

这样可以避免转换为字符串表示形式。

请注意,JavaScript数字的本质是,在您开始遇到精度问题之前,您的"原始"值(这11个无用数字的值)除了这11个数字之外,不能超过5个数字。我想,如果你从不关心低位11位数字,那可能不是问题。

试试这个:

var str = 1100000000011; 
var res = str.toString().substr(0, str.toString().length - 11);

演示

您可以将数字转换为字符串并删除尾随数字:

digits.toString().replace(/'d{11}$/, '')

顺便说一句,您最好不要使用int(或者准确地说,数字),因为如果数字大于2147483648(按绝对值),它将在内部表示为double,从而导致精度损失。如果不需要尾数,那么也可以——使用其他答案中建议的除法方法(由于科学记数法,这个可能会中断)。但是,如果你想保留所有的数据,你应该用字符串来表示你的数字。

您可以使用除法和10^11来执行此操作。编辑:我糟糕的

var getId = function (digits) {
   var id = parseInt((digits/(1e11)),0);
}

您可以将数字转换为字符串,并从结束中截取最后11个字符

parseInt( digits.toString().slice(0, -11) );

使用.slice( 0 , [ negative_number ]);将从字符串的末尾切片x字符

关于.slice()的更多信息此处