我正在尝试Math.pow()
在 C 中进行手动操作(相当于 ),所以在这里,它是:41619^6
。
float sum = 41619;
float a = sum;
int k;
for (k = 0; k < 5; k++) {
sum = sum * a;
}
printf("%f", sum);
// sum should be 41619 ^ 6 now
但是,我在这里失去了精确度。我得到了5196966085285475633789403136
,答案应该是什么时候5196965646007524312007756281
。
我尝试将 sum 更改为 a double
,但我仍然失去精度。
我怎样才能在不使用的情况下实现这一点Math.pow()
(对于我尝试运行的测试来说太慢了),并且不损失精度?