Python 3.6:十进制数的第三根有歧义

时间:2018-12-12 02:45:41

标签: python-3.x numbers precision

类型为numpy.float(64)的变量aa具有以下值:

In: aa
Out: -0.11077542882130173

采用此数字的三阶根会产生歧义:

  1. 直接键入会产生正确的结果

    In: -0.11077542882130173**(1/3)
    Out: -0.4802652307616457
    
  2. 采用aa的第三个根将直接生成警告并返回nan:

    In: aa**(1/3)
    __main__:1: RuntimeWarning: invalid value encountered in double_scalars
    Out: nan
    
  3. 转换为浮点数会生成一个复数:

    aa = float(aa)
    
    In: aa
    Out: -0.11077542882130173
    
    In: aa**(1/3)
    Out: (0.2401326153808229+0.41592189039398075j)
    

任何人都知道这种歧义是由何处产生的,以及如何在不输入数字的情况下获得第一个结果?

0 个答案:

没有答案