Reputation: 490
I am trying to return a double
from this int
division. I read this question but I cant seem to make it work for this particular case:
yComponent +=
((Math.min(i.getObservedIndividuals(), ii.getObservedIndividuals()))/
Math.max(i.getObservedIndividuals(), ii.getObservedIndividuals())*
i.getObservedIndividuals())/
(parent.getShareableSpecies()*
match.getTotalObservedIndividuals());
yComponent
is a double
and everything else is int
.
Upvotes: 0
Views: 53
Reputation: 6473
yComponent +=
((Math.min(i.getObservedIndividuals(), ii.getObservedIndividuals())) /
(double) Math.max(i.getObservedIndividuals(), ii.getObservedIndividuals())*
i.getObservedIndividuals()) /
(double) (parent.getShareableSpecies()*
match.getTotalObservedIndividuals());
A division won't use the "float processor" (arithmetic processor) if you don't cast at least one operand as a double or float. Which means that 3 / 2 = 1
for a CPU, but 3 / 2f = 1.5f
Upvotes: 1