Stinger 0 Опубликовано: 7 октября, 2017 (изменено) Мне нужно сделать, что бы значения больше 1000 разбивались запятыми допусти 1510 стало 1,510 и тд , думаю понятно, как это можно сделать средствами lua ? Изменено 16 сентября, 2018 пользователем eu_tomat вынос вопроса в отдельную тему Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 7 октября, 2017 ...мне нужно сделать, что бы значения больше 1000 разбивались запятыми допусти 1510 стало 1,510 и тд , думаю понятно, как это можно сделать средствами lua ?... Вот тут например предлагают вот такую симпатичную функцию юзать для этих целей: function comma_value(n) -- credit http://richard.warburton.it local left,num,right = string.match(n,'^([^%d]*%d)(%d*)(.-)$') return left..(num:reverse():gsub('(%d%d%d)','%1,'):reverse())..right end Юзается так: print(comma_value(9)) print(comma_value(999)) print(comma_value(1000)) print(comma_value('1333444.10')) print(comma_value('US$1333400')) print(comma_value('-$22333444.56')) print(comma_value('($22333444.56)')) print(comma_value('NEG $22333444.563')) Выведет это: 9 999 1,000 1,333,444.10 US$1,333,400 -$22,333,444.56 ($22,333,444.56) NEG $22,333,444.563 Для записи в файл просто замени print на file:write. 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Stinger Автор вопроса 0 Опубликовано: 7 октября, 2017 (изменено) ... Спасибо от души, эта функция нужна именно на выходе. Изменено 7 октября, 2017 пользователем Totoro цитатки сокращаем ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Stinger Автор вопроса 0 Опубликовано: 7 октября, 2017 (изменено) attempt to call field `match' (a nil value) вот такая проблема с этой функцией) Исправил, мой косяк, спасибо огромное за помощь Totoro Изменено 7 октября, 2017 пользователем Stinger Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 7 октября, 2017 attempt to call field `match' (a nil value) вот такая проблема с этой функцией) Не проверял этот код именно в OpenComputers. Но проблем вроде не должно быть. Может ты опечатался где-то? Скинь скрин этого кода из игры, и скрин ошибки отдельно. Я сейчас попробую тоже проверить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Stinger Автор вопроса 0 Опубликовано: 7 октября, 2017 (изменено) Всё работает, после того как взял целую функцию с того сайта. Вот эту: function comma_value(amount)local formatted = amountwhile true doformatted, k = string.gsub(formatted, "^(-?%d+)(%d%d%d)", '%1,%2')if (k==0) thenbreakendendreturn formattedend Видимо это связанно как то с тем, что я использую lua 5.0, кстати есть ли возможность его обновить если он вшит в консоль игры ? Изменено 7 октября, 2017 пользователем Stinger Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Stinger Автор вопроса 0 Опубликовано: 7 октября, 2017 (изменено) Если вас интересуют исходники LuaSQL модуля на C++ могу выложить, делалось под игру, работает с MSSQL SERVER любой версии. Изменено 7 октября, 2017 пользователем Stinger Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Мне нужно сделать, что бы значения больше 1000 разбивались запятыми допусти 1510 стало 1,510 и тд , думаю понятно, как это можно сделать средствами lua ?
Изменено пользователем eu_tomatвынос вопроса в отдельную тему
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах