Python代码不处理大数字

时间:2017-04-29 20:40:58

标签: python-3.x

我有这段代码从右边开始提取一个数字中的每个数字,用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

适用于较小的整数但由于数字位数超过某个限制,最右边的数字会自行改变。不知道为什么会这样。 例如,

  1. 1234

    (Current value of n *space* last digit)
    
    1234 4
    
    123 3
    
    12 2
    
    1 1
    
    0
    
  2. 11111111111111111111

    11111111111111111111 1
    
    1111111111111111168 8 **-> 'n' changes after n=int(n/10)**
    
    111111111111111120 0
    
    ...
    
  3. 无法理解为什么会这样!

1 个答案:

答案 0 :(得分:0)

Python 3中的单/确实浮动除法。

11111111111111111111/10为您提供1.1111111111111112e+18。这大约等于将起始编号除以10时得到的非整数值 如果将其强制转换为int,则会得到111111111111111168

如果你想进行整数除法(除以除法),你应该使用//运算符。