Добавлен
Делаю конвертацию:
local real R = 20.0* 1.3
call QuestMessageBJ( GetPlayersAll(), bj_QUESTMESSAGE_UPDATED, R2S(R))
call QuestMessageBJ( GetPlayersAll(), bj_QUESTMESSAGE_UPDATED, I2S(R2I(R)))
В результате на экране: 26.000 и 25. Вопрос: Почему R2I возвращает не 26, как должно было бы быть по логике?
ScorpioT1000:
пожалуйста, читайте статьи xgm.ru/p/wc3/w3_data_types
я понимаю, что можно задать ошибочный вопрос
но когда люди дают ошибочный ответ ... это просто расстраивает.
Перечитал статью вдоль и поперек, ответа на свой вопрос так и не нашел. (И как вопрос может быть ошибочным?=)) Интересно...)

это к близардам а вернее к их рукам
и бж убери
если вместо 1,3 и 20 использовать 1,1 и 10 то ответ 10 выдаёт
вобще если умножаешь дробь на круглое число и конвертируеш в интежер то интежер становится на 1 меньше реала
прибавляй единичку или конвертируй реал в строку потом строку в интежер
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
28
я просто на бж указал
обьясняю при умножение дроби на круглое число происходит баг
call QuestMessageBJ( GetPlayersAll(), bj_QUESTMESSAGE_UPDATED, I2S(S2I(I2R(R))))
так вот делай
ой вместо I2R используйR2I
или проверку if R!=I2R(R2I(R)) then
2
nvc123:
ой вместо I2R используй R2I
R2S ты хотел сказать?))
Вообщем суть я уловил, хоть и геморно, но работает, спасибо за совет))
8
особенность реала или числа double - это баг и криворукость близов
ура товарищи
28
закрывай вопрос а то бесит когда вопросы на которые дали ответы весят как без ответа
38
пожалуйста, читайте статьи xgm.ru/p/wc3/w3_data_types
я понимаю, что можно задать ошибочный вопрос
но когда люди дают ошибочный ответ ... это просто расстраивает.
38
Близзарды тут не при чём, ещё раз намекаю на ВАШУ криворукость.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.