Просмотр полной версии : деление или проценты
supernewbie
05.07.2010, 12:42
Пытаюсь извлечь минимальное кол-во ХП из максимального.
Вот эта строка выдает ошибку:
ReadMinHpName:=((ReadMaxHpName) / 100 * (procent));
Может есть функция вычесления сразу в процентах?
Или может я не так делю?)
Вообщем опять нид хелп. :D
alexteam
05.07.2010, 12:51
var
ReadMinHpName:integer ?
ReadMinHpName := Round((ReadMaxHpName) / 100 * (procent)); !
supernewbie
05.07.2010, 12:53
блин( опять запилил нубскую темку, ответ на вопрос который нашел сам)
PS вместо / надо писать div
Добавлено через 2 минуты
var
ReadMinHpName:integer ?
ReadMinHpName := Round((ReadMaxHpName) / 100 * (procent)); !
PSS у тебя тоже ошибку "Integer" "Expended" выдает.
alexteam
05.07.2010, 14:20
Round
у тебя тоже ошибку "Integer" "Expended" выдает.
"ниверю" ©
supernewbie
05.07.2010, 16:12
объясни заодно что такое Round )
alexteam
05.07.2010, 16:30
округление
Function Round(Value:extended):integer;
supernewbie
05.07.2010, 16:44
округление чего) число и так целое)
alexteam
05.07.2010, 16:54
(ReadMaxHpName) / 100 * (procent)
число и так целое
ага..
Еще как в школе учился допустил ту же ошибку, пару дней не мог понять в чем дело. Инета в те времена у меня не было, пришлось своей головой думать. Благо нашел книжку по ассемблеру и глянул как работает операция деления. Сейчас то, все намного проще: неявное преобразование данных защищает от подобного.
Собственно ответ который нужен автору темы: операция деления ВСЕГДА возвращает число с плавающей точкой.
Не имеет значения какой предполагается результат, даже если 4/2 ответом будет 2.0
В вашем случаи для деления можно использовать операцию div, можно исользовать функции Round или Trunc. Может и еще как-то можно, но я не программист и мне в жизни хватает и этих :)
А еще историческая справка (для общего развития): этот фактор когда-то использовали (во времена турбо паскаля 1.0) для преобразования целого числа в число с плавающей точкой. Так как компилятор считал ошибкой запись (если r:real, а z:integer) r:=z; и надо было писать r:=z/1;
vBulletin® v3.6.11, Copyright ©2000-2024, Jelsoft Enterprises Ltd. Перевод: zCarot