NetXMS Support Forum

Russian Support => Общие вопросы => Topic started by: vitabios on March 12, 2015, 05:20:33 PM

Title: Ошибка при преобразовании значения.
Post by: vitabios on March 12, 2015, 05:20:33 PM
Почему то при умножении значения на 8 - я получаю отрицательное число. Выход из положения нашел в данной ситуации, но все равно не понятно почему так происходит
Title: Re: Ошибка при преобразовании значения.
Post by: Victor Kirhenshtein on March 12, 2015, 05:22:27 PM
Скорее всего переполнение 32 бит целого. Попробуйте использовать int64($1).
Title: Re: Ошибка при преобразовании значения.
Post by: vitabios on March 12, 2015, 05:30:03 PM
сделал тип целое (64 бит).

Преобразование данных
$1 = 1440987079;
return $1*8;


Возвращает значение  -1357005256

Причем что интересно, такое происходит только с некоторыми значениями. Например
$1 = 1234567890;
return $1*8;


возвращает нормальное значение  1286608528
Title: Re: Ошибка при преобразовании значения.
Post by: Victor Kirhenshtein on March 12, 2015, 05:32:16 PM
Я имел ввиду в скрипте написать int64($1) - это преобразование типов:


return int64($1)*8;

Title: Re: Ошибка при преобразовании значения.
Post by: vitabios on March 13, 2015, 09:23:23 AM
Спасибо. Все получилось