-2

私はこのようなコードを持っています、私はヘノンの公式から数を取得しようとします

public class henon 
{
    public static void main(String[] args) 
    {         
        double a = 0.3;
        double b = 1.4;    
        double k[] = new double[1026];
        k[0] = 0.01;
        k[1] = 0.02;              

        for(int i = 0; i < 1024; i++)
        {                       
            k[i+2] = 1 - (a * Math.pow(k[i+1], 2) + b * k[i]);          
            System.out.println( "nilai ke" + i +" adalah " + k[i]);
        }
    }               
}

24、25で無限大の値wを取得するにはどうすればよいですか...それを解決するにはどうすればよいですか?

4

2 に答える 2

0

double計算がデータ型の範囲を超えているため、「無限」の値を取得しています。

さらに範囲が必要な場合は、 BigDecimalなどの bignum ライブラリのようなものに頼る必要があります。

于 2012-04-24T12:38:32.643 に答える
0

BigDecimalは、要件に適しています。

Joshua blochがEffective Javaで述べたように、doubleとfloatは正確な結果には役に立ちません。

BigDecimal k[] = new BigDecimal[1026];
        k[0] = new BigDecimal(0.01);
        k[1] = new BigDecimal(0.02);  
        for (int i = 2; i < k.length; i++) {
            k[i]=new BigDecimal(0.0);
        }

Bigdecimal の double 値が必要な場合は、 doubleValue() メソッドを使用できます。

于 2012-04-24T12:42:30.327 に答える