Java Syntax Homework - Problem 4. Calculate expression
Здравейте Колеги,
Прави ми впечатление, че при решението на тази задача за някой от дадените примери под условието не получавам същия output.
Примерно за следните input данни:
1.25 |
1.22 |
1.24 |
F1 result: 239530.27; F2 result: 1.00; Diff: 119764.40 |
Аз получавам:
F1 result: 239531.06; F2 result: 1.00; Diff: 119764.80
В няколкото решения от колеги предоставени последните дни, наблюдавам подобно отклонение.
По-долу е изчислението на F1, което съм имплементирал:
float resultFormulaOne = (float)Math.pow((Math.pow(a,2) + Math.pow(b,2))/(Math.pow(a,2) - Math.pow(b,2)),(a + b + c )/Math.sqrt(c));
Някой успял ли е да получи output както е в примерите към условието? Би ли споделил как го е постигнал? Предполагам е нещо свързано или с кастването или приоритет на операциите.
Както писах по-горе проблемът не идва от формулите (или имплементацията на логиката, която съм подбрал), а от кастване на резултат от метод, които връща double към float. При промяна на използваните променливи от float към double и премахване на кастването резултата е ОК. Ето и моето цялостно решение:
https://github.com/VladimirMYakimov/Java-Syntax-Homework/blob/master/src/CalculateExpression.java