将int减少到只有2位数

时间:2011-10-31 09:19:34

标签: c

我的int值为1235和12890.我只想要这个int的前两位数字。我该如何提取它?

我想了一段时间,无法提出任何解决方案。

3 个答案:

答案 0 :(得分:7)

减少数字,直到只剩下两位数字:

while (n >= 100) n /= 10;

答案 1 :(得分:2)

模数函数是你的朋友:

int n = i % 100;

给出了i。

的最后两位数字

一个简短的解释:任何base-n表示中的数字的最后x位数(在你的情况下为base-10)是不能均匀地除以n ^ x的数字的一部分。模数返回给定数n的除数余数,因此以n ^ x为模可得出最后一位数。

答案 2 :(得分:1)

您的问题隐式使用数字的小数形式。我认为大多数解决方案都要求您至少将其转换为十进制形式或确定它的十进制形式属性,然后允许您提取给定的信息。

以编程方式,您可以将其转换为字符串,将左侧两个字符转换为整数。

在算法上,确定k = floor(10log(i)),result = int(i /(10 ^(k-1)))