Java pow 不对最终值进行四舍五入

Java pow without rounding up the final value

我正在尝试为我的一个函数写一个公式,我需要将 X 提高到 Y 的幂。我使用的值非常小,一旦我使用 pow 函数就会四舍五入数学、BigInteger 和 BigDecimal。

例如,如果我使用以下值,它将 return 1000 而它应该 return 1006.931669 ! T0 = 1000,TN = 1,k = 1,N = 1000

    double X = (finalTemp/initialTemp);
    double A = Math.pow(X, (k/n));
    double tk = initialTemp * A;

根据计算器输出是正确的

public class Main
{
    public static void main(String[] args) {
        double finalTemp = 1.0;
        double initialTemp = 1000.0;
        double k = 1.0;
        double n = 1000.0;
        double X = (finalTemp/initialTemp);
        double A = Math.pow(X, (k/n));
        double tk = initialTemp * A;
        System.out.println(tk);
    }
}

输出为993.1160484209338

它们被划分为整数运算。因此,整数 a 除以整数 b 得到 b 适合 a 的次数,如果操作数的类型为双精度,则执行 "real" 除法。

double X = (finalTemp/(double)initialTemp);
double A = Math.pow(X, (k/(double)n));
double tk = initialTemp * A;