我有这段代码从右边开始提取一个数字中的每个数字,用Python编写。
n=int(input())
while (n>0):
r=n%10
print(r) // Printing the current value of n
n=int(n/10)
print(n) //Printing n after dividing by 10
适用于较小的整数但由于数字位数超过某个限制,最右边的数字会自行改变。不知道为什么会这样。 例如,
1234
(Current value of n *space* last digit)
1234 4
123 3
12 2
1 1
0
11111111111111111111
11111111111111111111 1
1111111111111111168 8 **-> 'n' changes after n=int(n/10)**
111111111111111120 0
...
无法理解为什么会这样!
答案 0 :(得分:0)
Python 3中的单/
确实浮动除法。
11111111111111111111/10
为您提供1.1111111111111112e+18
。这大约等于将起始编号除以10时得到的非整数值
如果将其强制转换为int,则会得到111111111111111168
。
如果你想进行整数除法(除以除法),你应该使用//
运算符。