I have 7 integers, and one calculation. Calculating maximumY should equal -3940 but instead produces 1724869434.
Why is this?
in1 = 1000;
in2 = 1000;
in3 = 100;
in4 = 100;
in5 = 100;
in6 = 1000;
in7 = 100;
duration / 1000 = 24;
frequency1 / 1000 = 5
frequency2 / 1000 = 5
frequency3 / 1000 = 10
frequency4 / 1000 = 24
frequency5 / 1000 = 2
frequency6 / 1000 = 2
frequency7 / 1000 = 4
int cal1 = in1 + (in1 * (duration / 1000) / (frequency6 / 1000));
int cal2 = in1 + (in2 * (duration / 1000) / (frequency7 / 1000));
int cal3 = out1 +(out1 * (duration / 1000) / (frequency1 / 1000));
int cal4 = out2 +(out2 * (duration / 1000) / (frequency2 / 1000));
int cal5 = out3 +(out3 * (duration / 1000) / (frequency3 / 1000));
int cal6 = out4 +(out4 * (duration / 1000) / (frequency4 / 1000));
int cal7 = out5 +(out5 * (duration / 1000) / (frequency5 / 1000));
maximumY = (cal1) + (cal2) - (cal3) - (cal4) - (cal5) - (cal6) - (cal7);
You can use
longprovided you want to perform integer arithmetic.Otherwise I would use double with appropriate rounding, or BigDecimal.
You could simplify your code
is
or