高精度实数累乘怎么算

来源:百度知道 编辑:UC知道 时间:2024/07/01 11:41:45
比如哦12.123456789的12次方怎么算

我觉得要用按位来算。

main()
{long double s,a=12.123456789;

for(int i=1;i<=12;i++)
{s=s*i;}
printf("%lf",s);
}

楼上两位的代码根本显示不出那么高精度的数,其结果也只是一个近似值。因为long float和long double这两种数据类型提供的有效数字也是非常有限的。你可以写一个自定义类来计算任意长度的数字的数学运算。

main(){long float a=12.123456789;
int i=12;
long float sum=1;
for(i=1;i<=12;i++)
sum=sum*a;}