从Int获取单个数字而不使用字符串?

时间:2017-12-25 14:19:27

标签: c# type-conversion numbers int

我知道您可以将Int转换为字符串并使用索引器获取位置x处的数字,就像它是一个char数组一样,但是当您处理多个大型数据时,这种转换会有点开销号。

有没有办法在x位置检索数字而不将数字转换为字符串?

编辑:

谢谢大家,我将对提出的方法进行基准测试,并检查它是否比转换为字符串更好。如果有人有更好的想法,线程将保持24小时无人接听。

编辑2:

在对ulong数字进行一些简单的测试之后,我得出结论,与下面提供的方法相比,转换为字符串和提取数字的速度可以慢50%,见批准的答案。

1 个答案:

答案 0 :(得分:2)

你可以这样做:

int ith_digit(int n, int i) {
    return (int) (n / pow(10, i)) % 10;
}

我们可以通过将数字减少到我们想要的那个数字变成一个地方来得到第i个数字,例如:

让我们说你想要12345中的第三个数字,然后将它减少到123(通过除以10次),我们可以将该数字的余数除以10得到最后一个数字数字,这是我们想要的数字。