как я могу сделать так, чтобы это выражение не заканчивалось нулем.
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.