Мы разработали простое моделирование V-REP, которое очень хорошо работает на OS X, но не на Linux (Ubuntu 15.04). Lua используется в качестве основного языка сценариев.Lua `tonumber` V-REP's возвращает nil на Linux
Мы придаем следующий код (с возвращаемые значения в комментариях), к сожалению, возвращает nil
на Linux (но преобразует e[3]
номер без проблем на OS X):
e[3] -- -0.677782532263
type(e[3]) -- string
type(tonumber(e[3])) -- nil
Что действительно интересно, является тот факт, что предыдущий код работает так, как можно было бы ожидать в консоли Lua 5.2.3 (как OS X, так и Linux). Тем не менее, V-REP не может правильно преобразовать строку в номер при работе в Linux.
Мы попробовали оба 32b and 64b V-REP versions (сегодня скачано) с точно такими же результатами - nil
s. Не могли бы вы указать на некоторые вещи, которые нам не хватает? Ни Lua, ни V-REP не являются утилитами, которые мы используем каждый день.
Редактировать 1: I Использование Ubuntu 15.04. V-REP использует Lua 5.1, Моя версия Lua:
$ apt-cache policy lua5.1
lua5.1:
Installed: 5.1.5-7.1
Candidate: 5.1.5-7.1
Version table:
*** 5.1.5-7.1 0
500 http://cz.archive.ubuntu.com/ubuntu/ vivid/main amd64 Packages
100 /var/lib/dpkg/status
В консоли, я попытался следующие:
$ lua
Lua 5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio
> e={[3]="-0.677782532263"}; print(e[3], type(e[3]), tonumber(e[3]), type(tonumber(e[3])))
-0.677782532263 string -0.677782532263 number
Пакеты
Вы действительно получаете распечатку 'Nil'? Или это 'nil'? Вы уверены, что используете одну и ту же версию lua как для ОС X, так и для Linux, когда это происходит? И обе первые две строки выводят одно и то же значение в OS X и linux, когда это происходит? –
Привет, Etan, мы получаем 'nil', версия на обеих платформах одинакова, и о выходе - значения динамически создаются в python и отправляются через удаленный api в vrep (и lua), поэтому они не точные точные значения, но ошибка вообще не происходит на os x и происходит на linux на всех числах с плавающей запятой, которые передаются. – Gyfis
@EtanReisner это точно так же, как писал Gyfis. – petrbel