Порядок операций, BigDecimal

#java #bigdecimal

#java #bigdecimal

Вопрос:

При использовании BigDecimal я получаю неправильное ожидаемое значение. Я знаю, что это связано с порядком операций и тем, как java его читает, но я не уверен, как это исправить. Ожидаемый результат = 5.1

 length = 2.4
width = 1
effectivedepth = 1.5

Using brackets 
// (length * effectivedepth)   (width * effectivedepth) = Surfacearea50perDepth
 //(2.4 * 1.5)   (1 * 1.5) = 5.1
  surfacearea50perDepth = length.multiply(effectivedepth.add(width.multiply(effectivedepth)));

Output = 7.2


thanks in advance
 

Комментарии:

1. Что вы пытались отладить проблему? Можете ли вы поделиться рабочим кодом, чтобы другие могли воспроизвести вашу ситуацию?

2. Привет, Нико, я обошел проблему, убрав общий коэффициент (эффективную глубину) и поместив его за скобки

Ответ №1:

Решаемая, помещенная эффективная глубина вне скобки .. эффективная глубина (ширина длина) = SA

     surfacearea50perDepth = effectivedepth.multiply(width.add(length));