Why when using QT the type of the variables of my scripts change "float" to "int" ?
-
Hello,
I have a dynamic library A.dll that has a script system (chaiscript).
When I link this A.dll library with a B.exe program that I use to test the library and execute a script, it works as expected:
def update() { var dt = 0.1f; var speed = 50.0f; var movement = speed * dt; print("dt: " + to_string(dt) + " speed: " + to_string(speed) + " movement: " + to_string(movement)); .....
prints:
dt: 0.1 speed: 50 movement: 5
NOW THE PROBLEM:
When I use QT and link to the same A.dll, and the QT application executes the script using A.dll library it prints this:
prints:
dt: 0 speed: 50 movement: 0
As you can see the floating variables are truncated to INT.
Anyone knows if QT is doing something weird with the built-in types?
Thank you! -
@RoiG said:
to_string
Make sure u are using QString::number to convert for output
float pi = 3.14;
QString b = QString::number(pi);Else It should not fux with the types.
Edit: sorry , Py . Not sure that the actual issues.
-
Hello, thank you for your answer but the to_string method is a method from chaiscript script system not the QT one.
I'm not using the QT types for the script, just built-in types like int float etc..
-
py == python? It's chaiscript, and yes it happens to all variables that I define :(
I asked the same on the chaiscript forum, the main programmer of chaiscript, said the same "That's very odd" :P
http://discourse.chaiscript.com/t/inconsistency-of-var-type-between-executions/171
I suppose that I will have to make an small test case..
Thank you! :)
-
sorry. my bad.
Its was the "def" that made my brain go py.yeah I think u need a small test case as Qt should not mess with the build in types as far as I know
since it has its own ones. quint32 etc.Good luck!