如何获取整数的前两个数字?

9
如何在整数中获取前两个数字?
例如:如何在PHP或JavaScript中从123456中获取12?
4个回答

17

PHP:

$num = 123456;
echo substr($num, 0, 2);

JavaScript:
alert((123456).toString().substr(0, 2));

虽然适用于大数,但对于1234500000000000000000而言,结果是'.1'而不是'12'。 - Guffa
如果你将其包装在引号中,例如 '1234500000000000000000',那么它应该可以工作,然后一旦你得到了所需的数字部分,就可以进行类型转换。例如:$num = '1234500000000000000000'; $output = substr($num, 0, 2); echo (int) $output; - Sarfraz
@Guffa:当然不是,但正如我所说,一旦你获得了所需的数字,你可以再次将它们强制转换为数字。正如Delan Azabani所说,这是因为它会转换为科学计数法。谢谢。 - Sarfraz
@Sarfraz:你没有理解重点。如果输入是一个包含数字值的变量,你不能只在它周围加上单引号。如果你可以那样改变输入,你也可以轻松地将除了前两个字符以外的所有内容删除,那么这整个问题就毫无意义了。 - Guffa

7

JavaScript:

(123456).toString().substr(0,2);

PHP:

substr(123456, 0, 2);

真的吗?我只是在进行类型转换以确保。我会简化它,非常感谢!;) - Delan Azabani
但是对于大数不起作用。1234500000000000000000 变成了 '.1' 而不是 '12'。 - Guffa
@Guffa:这是因为在大数上调用.toString()会给出科学计数法(X.Ye+Z)。 - Delan Azabani
1
谢谢澄清,也许我应该在我的评论中包含原因,但当时似乎太明显了... - Guffa

2
$result = substr("123456", 0, 2);

1
在Javascript中的数字:
while (number >= 100) number = Math.floor(number / 10);

@Alsciende:是的,你说得对。我已经更改了它以去除分数。 - Guffa

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