Софтуерно Инженерство
Loading...
+ Нов въпрос
IvelinTenev avatar IvelinTenev 49 Точки

[Java OOP] [Static Members] 08. Shapes Volume

Здравейте,

Боря се от известно време с това, и ще съм благодарен за малко помощ. Файл-вам на 4ти тест и на примерния вход:

Cylinder 5 11.4 -> 895.354

Формулата, която ползвам е:

V = pi*r*r*h като приемам pi = 3.14159, както е зададена в предишната задача.

След операции с double или BigDecimal, получавам 895.35315000, което би трябвало да се закръгли до 895.353, но това не удолетворява zero test-a.

Ако закръгля резултата така:

volume.setScale(3, RoundingMode.CEILING)

минавам zero test-a, но fail-вам всички останали. Всеки опит да закръгля междинните резултати ме отдалечава от крайния резултат.

Жокерите са добре дошли :)

Поздрави,

Ивелин Тенев 

Тагове:
0
C# OOP Basics 25/06/2016 17:25:31
vancho avatar vancho 430 Точки
Best Answer

Задай му Math.PI и би трябвало да стане, при мен поне така се получи (по начина, който ти ползваш от предната задача и аз така го бях направил но се сетих, че не дава точно и пробвах с готовата функция).

0
25/06/2016 17:22:53
Filkolev avatar Filkolev 4428 Точки

Използвай стойността на константата пи от Math класа. Резултатът е по-различен - 895.35390, което ще се закръгли както се очаква в нулевия тест.

0
IvelinTenev avatar IvelinTenev 49 Точки

Да, минах. Благодаря.

0
AntonPortenov avatar AntonPortenov 77 Точки

Какви формули използвате, че нещо ми гърмят 2 и 4. Пробвах и с decimal и с double. Явно не е в това проблема.

За куб Cube  - lenght^3

за TriangularPrism  - base line * lenght

за Cilynder  - Math.PI*Math.pow(figure.getRadius(), 2)*figure.getLenght());

 

ще бъда благодарен на всеки съвет.

Поздрави

Антон

0
vancho avatar vancho 430 Точки

В условието има линк за формулите.

-1
AntonPortenov avatar AntonPortenov 77 Точки

 може ли линка?

 

При мен нищо не излиза.

 

Някой може ли да сподели решението си за 100/100?

0
28/06/2016 15:53:59
vancho avatar vancho 430 Точки

 ЛИНК към условията.

0