XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
GREAT_MAN

offline
Опыт: 282
Активность:
Проблема с Integer переменными
У меня есть 2 integer переменных
Мне нужно соеденить их вместе через точку(как реальную переменную), к примеру:
int a=54
int b=96
Соеденяем и получатеся:
real c=54.96
Старый 28.12.2012, 20:11
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
54+96/100.
Старый 28.12.2012, 20:13
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
GREAT_MAN:
Я не вижу ответов, неужели никто не знает?
Ответ уже дали же.
16GB:
54+96/100.
Для особо немощных:
I2R(a*100+b)/100.0
А еще лучше так: S2R(I2S(a) + "." + I2S(b)) rofl
Старый 28.12.2012, 20:30
GREAT_MAN

offline
Опыт: 282
Активность:
О боже...
Если ты 54+96/100 получается совсем другое число. А мне нужно просто из двух int сделать одно real число
Старый 28.12.2012, 20:35
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
GREAT_MAN:
Если ты 54+96/100 получается совсем другое число. А мне нужно просто из двух int сделать одно real число
Faion:
I2R(a*100+b)/100.0
fxd
Старый 28.12.2012, 20:35
Doc

offline
Опыт: 63,163
Активность:
таки если через точку то все норм будет. 16гб все правильно написал. пруфов не будет.
Старый 28.12.2012, 20:37
GREAT_MAN

offline
Опыт: 282
Активность:
Настало время показа кода. Просто установка времени:
((код jass
DISABLED JASS CODE
))
Проблема в том, что минуты ставятся на 10(или больше 10) меньше чем надо (будто высчитывает)
GREAT_MAN добавил:
Ух какая куча ответов, прям не разберешь =)

Отредактировано GREAT_MAN, 28.12.2012 в 22:12.
Старый 28.12.2012, 21:40
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Вариант от скорпа:
function twoInts2float takes integer intPart, integer decimalPart returns real
    return I2R(intPart) + ( I2R(decimalPart) / Pow( 10, R2I(Log(decimalPart)+1.0) ) )
endfunction
Faion добавил:
Еще от скорпа:
// Parabollic natural logarithm, has a good accurity as well; by BlinkBoy, 04-24-2010
function Ln takes real a returns real
local real sum = 0.0
loop
    exitwhen a < bj_E
    set a = a/bj_E
    set sum = sum + 1.
endloop
return sum + (a-1.)*(1. + 8./(1.+ a) + 1./a)/6.
endfunction
// Decimal logarithm
function Log takes real a returns real
    return Ln(a)/2.302585
endfunction

// Combines two numbers before and after the floating point. Ex: twoInts2float(54, 96) ~ 54.96
function twoInts2float takes integer intPart, integer decimalPart returns real
    return I2R(intPart) + ( I2R(decimalPart) / Pow( 10, R2I(Log(decimalPart)+1.0) ) )
endfunction
Старый 28.12.2012, 21:49
GREAT_MAN

offline
Опыт: 282
Активность:
хмм, тоже самое. Ну да ладно, закрывайте. Главное, что примерно он ставит и все

Отредактировано GREAT_MAN, 28.12.2012 в 22:07.
Старый 28.12.2012, 22:00
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 01:28.