C vs Python精度

尝试找到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;

Python

(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中获得相同的精度???

编辑:我知道外部库包获得这种精度,但任何NATIVE解决方案???

解决方法

Decimal是一个内置的python类,可以正确处理浮点数(作为基数10,而不是IEEE 7somethingsomething标准).我不知道它是否支持对数和所有这些.

编辑:确实是support logarithms “and all that”.

您也可以设置它的精度.认值是28个位置,但它可以是您想要的大小.可以将其视为小数的BigInt.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...