Russian Qt Forum

Qt => Общие вопросы => Тема начата: IGHOR от Октябрь 28, 2014, 05:04



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

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

Подскажите способы решения проблемы.


Название: Re: Qt Script - максимальное число вычислений 2147483647?
Отправлено: Hrundel от Октябрь 28, 2014, 20:38
The following table (http://qt-project.org/doc/qt-5/qtscript-index.html) 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())


Название: Re: Qt Script - максимальное число вычислений 2147483647?
Отправлено: IGHOR от Октябрь 28, 2014, 23:35
The following table (http://qt-project.org/doc/qt-5/qtscript-index.html) 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


Название: Re: Qt Script - максимальное число вычислений 2147483647?
Отправлено: vipet от Октябрь 29, 2014, 12:29
как вариант: заюзать другой движок вместо QtScript.

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

QtWebEngine который сейчас на хромиуме можно заюзать. Только хорошо было бы не тянуть со своей прогой весь его оверхед, т.е. то, что отрезали в PhantomJS от вебкита.


Название: Re: Qt Script - максимальное число вычислений 2147483647?
Отправлено: Hrundel от Октябрь 29, 2014, 23:40
Лучше бы ты Pyton к нему прикрутил.