Alexander
Alexander

Reputation: 490

Returning Double from compound division of Integers

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

Answers (1)

Guillaume F.
Guillaume F.

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

Related Questions