Python 3,Math.floor on" long"数字

时间:2017-05-27 18:10:35

标签: python-3.x math

  
    
      

INT(-9/8)       -1       math.floor(-9/8)       -2

    
  

按预期工作,但是:

  
    
      

int(-27185501994412122128269814042 / 1893973573)       -14353686018623303680       math.floor(-27185501994412122128269814042 / 1893973573)        -14353686018623303680 注意减号,应为-1435368601862330368 1

    
  

任何想法为什么?以及如何解决?

  
    
      

int(-27185501994412122128269814042%1893973573)       1012149580> 0

    
  

1 个答案:

答案 0 :(得分:1)

在两种情况下结果都是错误的,因为正确的分数是-14353686018623303214

-27185501994412122128269814042 - (-14353686018623303214*1893973573)
= 1012149580 
< 1893973573

获得另一个结果,因为商首先转换为浮点格式,然后再转换为整数。