Loading...
Vincent avatar Vincent 11 Точки

Няколко въпроса свързани с изпита

Здравейте готвя се за изпита по основи на програмирането и и мам няколко въпроса, ако може да помогнете:

-когато имам да разделя цели числа, как се процедира. Примерно 300/500 и като int и като double ми връща съответно 0 и 0.00 и не мога да работя

-когато в една задача се изисква интервал на стойността примерно , от мен изисква ли се нещо друго освен да декларирам променлива. Като чета в интервал и лично аз разбирам ако излезна от този интервал програмата да гърми. 

-как се прави закръглянето наргоре/надолу. 

Тагове:
0
Programming Basics
Thedi avatar Thedi 200 Точки

При делене на инт полученият резултат се закръгля на долу. Пример 300/500 = 0.6  което ще го закръгли на 0.

Ако имаш 2 инта и трябва да ги събереш или умножиш трябва променливата в която ги записваш да е с по висок тип. Пример:
2 000 000 000 * 2  = 4 000 000 000 което не се събира в инт за това трябва да го запишеш в long.
int a = 2 000 000 000;

int b = 2;

long result = a * b;

Закръгляне на горе Math.ceil(Числото/Променливата/Израз) а пък на долу е Math.floor(Числото/Променливата/Израз)

0
04/09/2017 21:48:43
KonstantinLupov avatar KonstantinLupov 34 Точки

Ако и двете са double, не връща 0.0, a в случая връща 0.6. При закръглянето, може да ползваш Math.ceil (закръгля нагоре), Math.floor(закръгля надолу) и Math.round(ако е 1.4 закръгля до 1, ако е >= 1.5 закръгля на 2). Има и начин да форматираш до колкото искаш запетаи след запетаята без закръгляне. Трябва да е нещо като System.out.printf("%.2f", val);, като 2f означава 2 места след десетичната запетая.

П.П.: Към средата на коментара видях, че си сложил таг Java (супер, че ползваш тагове, които насочват към правилни отговори) и честно да ти кажа, сам трябва да провериш правилния синтаксис зa Math класа, но мисля че е нещо като java.lang.Math.ceil(double value);
П.П #2: Изкриви ми се душата да пиша методите с малка буква, пиша на C#, там са с главна, хаха.

0
04/09/2017 21:58:03
Vincent avatar Vincent 11 Точки

Благодаря за отговорите, но това с int не го разбрах. В моя случей решавах една задача за танциори от преддишни изпити и трябваше да реша следното нещо

Int num = (7000+40)/10000;

И съответно да работя със стоймостта 0,704. Как мога да извърша това пресмятане и да получа тази стойост.

0
martinml avatar martinml 297 Точки

Това е целочислено деление, виж този коментар.

0
KonstantinLupov avatar KonstantinLupov 34 Точки

С int няма как да се получи. Ако делиш ако делиш число на по-голямо число и очакваш целочислен резултат, винаги ще върне 0 - 1/2 е 0.5, но нали е целочислен, премахва всичко след десетичната запетая.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.