Russian Qt Forum
Апрель 16, 2024, 07:03 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt Script - максимальное число вычислений 2147483647?  (Прочитано 3728 раз)
IGHOR
Крякер
****
Offline Offline

Сообщений: 390



Просмотр профиля WWW
« : Октябрь 28, 2014, 05:04 »

Сделал на Qt Script свой скриптовый язык, и нужны математические операции с 64 битными числами.
Но в Qt Script коде ни в какую не удается использовать большие int.
Нагуглил что для стандарта ECMA максимальное число должно быть 9007199254740992
Но максимальное число которое работает в Qt Script это 2147483647

Код:
var test1=2147483647; // Все норм
test1+=1; // Тут уже ноль
var test2=21474836474; // Тут тоже ноль

Подскажите способы решения проблемы.
Записан
Hrundel
Гость
« Ответ #1 : Октябрь 28, 2014, 20:38 »

The following table describes the default conversion from a QScriptValue to a C++ type.

double   QScriptValue::toNumber()
float   float(QScriptValue::toNumber())
long   long(QScriptValue::toInteger())
ulong   ulong(QScriptValue::toInteger())
qlonglong   qlonglong(QScriptValue::toInteger())
qulonglong   qulonglong(QScriptValue::toInteger())
Записан
IGHOR
Крякер
****
Offline Offline

Сообщений: 390



Просмотр профиля WWW
« Ответ #2 : Октябрь 28, 2014, 23:35 »

The following table describes the default conversion from a QScriptValue to a C++ type.

double   QScriptValue::toNumber()
float   float(QScriptValue::toNumber())
long   long(QScriptValue::toInteger())
ulong   ulong(QScriptValue::toInteger())
qlonglong   qlonglong(QScriptValue::toInteger())
qulonglong   qulonglong(QScriptValue::toInteger())

Беда, что ж они так?
Выхода нет получается?
Тут мне ответили что на Qt 4.8.6 работает код http://stackoverflow.com/questions/26600829/qt-script-how-to-use-numbers-bigger-than-2147483647
Записан
vipet
Бывалый
*****
Offline Offline

Сообщений: 452


Просмотр профиля
« Ответ #3 : Октябрь 29, 2014, 12:29 »

как вариант: заюзать другой движок вместо QtScript.

вот был и есть headless webkit - PhantomJS. Может есть подобное типа headless chromium.

QtWebEngine который сейчас на хромиуме можно заюзать. Только хорошо было бы не тянуть со своей прогой весь его оверхед, т.е. то, что отрезали в PhantomJS от вебкита.
Записан
Hrundel
Гость
« Ответ #4 : Октябрь 29, 2014, 23:40 »

Лучше бы ты Pyton к нему прикрутил.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 22.