I2R

Добавлен
Нужно ли использовать эту функцию во время сравнений и мат. операций для конвертации целочисленных в числа с плавающей точкой?

Ок, вечером протестирую, выложу результат.
Протестировал без циклов и в разных потоках, без умножения и функции быстрее.
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
17
Сомневаюсь что округляться будет в нужную сторону, да и легче сразу real сравнивать.
13
Integer наследует Real, поэтому переменную типа integer можно использовать, как real (но не наоборот).
28
PyCCKuu_4eJl:
Сомневаюсь что округляться будет в нужную сторону, да и легче сразу real сравнивать.
Простите, а что будет округлятся у целочисленных?
Fakov:
Эм? А почему сразу real не сравнивать?
Ситуация такая. Есть число целое, есть нецелое. Мне нужно их сравнить\сложить\умножить\разделить\вычесть.
Вопрос: нужно ли конвертировать целое в нецелое с помощью I2R(), и что будет, если этого не сделать?
Я вот на HIVE читал, что I2R(int) медленнее, чем int * 1.0, но я хотел бы уточнить эту информацию и выяснить вообще необходимость конвертации как и с помощью I2R(), так и с помощью умножения на 1.0.
Пушистый:
Integer наследует Real, поэтому переменную типа integer можно использовать, как real (но не наоборот).
Нет, integer базовый тип, да и хранятся они по-разному.
16
если один из операндов реал, то второе будет автоматом сконвертировано. если операнды не используют точку, то будет работать как с целыми. вызов функции дороже мат. операции.
28
вызов функции дороже мат. операции.
Понятно, а зачем тогда вообще функция I2R()?
Что потребует больше времени?
local real r = 100.
local integer i = 100
local real u = r + i * 1.
// или
local real r = 100.
local integer i = 100
local real u = r + i
local real r = 100.
local integer i = 100
local boolean b = r != i * 1.
// или
local real r = 100.
local integer i = 100
local boolean b = r != i
16
Ну просто функция - это официальный вариант, а можно перемножить
Затраты времени в мат операциях ничтожны по определению
28
Ну просто функция - это официальный вариант, а можно перемножить
Нужно ли вообще перемножать?
Что потребует больше времени?
local real r = 100.
local integer i = 100
local real u = r + i * 1.
// или
local real r = 100.
local integer i = 100
local real u = r + i
local real r = 100.
local integer i = 100
local boolean b = r != i * 1.
// или
local real r = 100.
local integer i = 100
local boolean b = r != i
20
Жасс расходует время на чтение символов (на хайве видел 5мс на сисвол, но, вероятно, имелось в виду мкс или типа того, ибо иначе выходит больно жирно, не уверен. Расходуется больше времени на чтение чем на подобные мелкие операции. Но делать сильно крутую оптимизацию стоит лишь для циклов, групп юнитов и т.п. Не лагает - забей. Хотя имеет смысл научиться сразу все делатб по человечески, да :)
20
там на форуме что то со словом lab в качестве подфорума. Я пока не у компа
Там всякие перформанс обсуждения
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.