NaN,Java麻烦

时间:2014-11-08 03:11:32

标签: java nan double-precision

我试图划分两个完整的双精度值(即双变量,所有内存都填充了高精度数)。此外,操作的结果将以双变量分配。

当我做这个过程时,这个给我回NaN。

我在某个地方读过这两个完整的double值,当它们之间相乘或分开时会产生一个高内存值,一个不能在double变量中分配的内存值。

我是对的吗?

我怎么能解决这个问题?

public class CoeficienteAngular {

    public static double coefAngularImpar(    int x/*Coeficiente 
    da longarina a qual se analiza*/,         double y/*Distância 
    entre as longarinas*/,                     double z/*Somatorio*/){

        double beta;
        double betaPrim;

        betaPrim = (double) x/y;
        beta = betaPrim/z;

        return beta;
    }

    public static double coefAngularPar(    int x/*Coeficiente 
    da longarina que se analiza*/,             double y/*Distância 
    entre as longarinas*/,                     double z/*Somatório*/){

        double numerador, denominador, fatorCorrecao;
        double beta;

        int moduloL = Math.abs(x);

        numerador = (double)(moduloL-1)+(double)(1/2);
        denominador = y*z;

        fatorCorrecao = 1;//Inicializando a variável
        if(x>=0){
            fatorCorrecao = 1;
        }else if(x<0){
            fatorCorrecao = -1;
        }

        beta = fatorCorrecao*(numerador/denominador);
        return beta;
    }

}

1 个答案:

答案 0 :(得分:0)

不要使用双打。为避免精确丢失,请改用BigDecimalsee Javadoc)。您还可以阅读此post,其中人们完全解释了使用BigDecimal的原因。