我怎樣才能使這個表達式不是最終的零。獲取Math.pow以返回正確的值?
double dBaseFitness = (double) baseFitness;
x.shortfitness = (long)(Math.pow(dbaseFitness, dbaseFitness/8.0)/100.0)
*(long)(Math.pow((double)x.genome.GSIZE, -.1)/100.0);
x.shortfitness是一個很長的值。 x.Genome.GSIZE是一個int。
我將每個表達式除以100的唯一原因是,結果不會超過long類型的最大值。
什麼是baseFitness和x.shortfitness的數據類型? – zebediah49 2011-03-17 04:48:21
@ ErnestFriedman-Hill @SteveKuo,謝謝你們,我更新了expresion只使用雙值,但我仍然得到0.我在哪裏做演員很長? – wbarksdale 2011-03-17 05:05:44
也許真正的答案是小於1,所以它被截斷爲0?這將有助於將答案分配給double,並在將其分配給long之前將其打印出來,以便我們可以看到該值是什麼。 – 2011-03-17 05:12:03