代码之家  ›  专栏  ›  技术社区  ›  jknair

C++与Python精度

  •  6
  • jknair  · 技术社区  · 15 年前

    尝试找出一个num ^ num的第一个k个数字的问题,我用C++和Python编写了相同的程序。

    C++

    long double intpart,num,f_digit,k;
    cin>>num>>k;
    f_digit= pow(10.0,modf(num*log10(num),&intpart)+k-1);
    cout<<f_digit;
    

    蟒蛇

    (a,b) = modf(num*log10(num))
    f_digits = pow(10,b+k-1)
    print f_digits
    

    输入

    19423474 9
    

    产量

    C++    > 163074912
    Python > 163074908
    

    我检查了结果,C++解决方案是精确的。 在http://www.wolframalpha.com/input/上检查过?I=19423474^19423474

    知道如何在python中获得相同的精度吗????

    编辑:我知道要获得这个精度的外部库包,但是有什么本地解决方案吗????

    3 回复  |  直到 15 年前
        1
  •  9
  •   Tor Valamo    15 年前
        2
  •  2
  •   Bill Gribble    15 年前
        3
  •  0
  •   Bill Lynch    15 年前

    num = 453
    k = 9
    result = num ** num
    
    print str(result)[:k]
    # Prints: '163111849'