[ТЕМА ЗАКРЫТА]
Опции темы
29.05.2014 14:41  
OlegON
ну и поменяй точку на запятую, пример с gsub выше...
 
29.05.2014 14:46  
Tiger
Цитата:
Сообщение от OlegON
ну и поменяй точку на запятую, пример с gsub выше...
В том то и дело что меняются почему-то все символы (в том числе и цифры) на запятые
 
29.05.2014 14:47  
OlegON
Запусти отдельно этот скрипт и рассказывай, где как и что запускаешь, если не получается.
 
29.05.2014 14:52  
vdm
Да заверни ты все в tonumber и посмотри что получится.
На кассе на локали можно забить, там не зоопарк.

Код:
commission = tostring(tonumber(property.value) - tonumber(property.value) * 0.04);
 
29.05.2014 14:53  
Tiger
Цитата:
Сообщение от OlegON
Запусти отдельно этот скрипт и рассказывай, где как и что запускаешь, если не получается.
Полностью закинул твой пример в свой цикл

Цитата:
for i = 0, __item.properties:size() - 1 do
local property = __item.properties:at(i);
if (ukm.binary(property.flags) *
ukm.binary(ukm.item_property.flgprint)):get() ~= 0 then
local property_name = property.code;
if property.name ~= nil then
property_name = property.name:get();
end
text = text .. ukm.adjustment(" " .. property_name, property.value .. " ", width, ".") .. "\n";
if property_name == 'Сумма' then
val = "String";
val = tostring(7.5);
val = string.gsub(val,".",",");

end
if property_name == 'Номер телефона' then
text = text .. ukm.adjustment("Сумма с комиссией (4%)",val .. " ", width, ".") .. "\n";
end
end
end
В переменной val получаю вместо 7,5 три точки
 
29.05.2014 14:56  
Tiger
Цитата:
Сообщение от vdm
Да заверни ты все в tonumber и посмотри что получится.
На кассе на локали можно забить, там не зоопарк.

Код:
commission = tostring(tonumber(property.value) - tonumber(property.value) * 0.04);
С целым числом например 50 всё без ошибок, ввел на кассе 15.20 ошибка
Цитата:
ReceiptAppendPayment: [string "receipt.lua"]:160: attempt to perform arithmetic on a nil value
 
29.05.2014 15:08  
vdm
Покажи в каком виде property.value возвращается.

Код:
commission = property.value;
 
29.05.2014 15:23  
Tiger
Цитата:
Сообщение от vdm
Покажи в каком виде property.value возвращается.

Код:
commission = property.value;
commission = property.value; возвращается значение 15.20

commission = type(property.value); возвращает string
 
29.05.2014 15:29  
Tiger
Цитата:
Сообщение от Tiger
В том то и дело что меняются почему-то все символы (в том числе и цифры) на запятые
Eсли property.value = 15.20, функцией gsub string.gsub(property.value,"1",","), то получаю результат ,5.20. Почему когда меняю string.gsub(property.value,".",","), получаю ,,,,, - пять запятых?
 
29.05.2014 15:44  
student
Цитата:
Сообщение от OlegON
Так у него с локалью проблемы, как он на 100 умножит?
у меня не на чем протестировать - луа нету, но в винде в аксесе умножение проходит над строкой в зависимости от локали - если локаль точка и на входе в строке точка все рассчитается - аналогично как и с запятой

правда если локаль точка а строка идет с запятой или наоборот, то тогда уже вопрос к ф-ции которая так возвращает строку в которой разделитель числа отличается от локали:)

самому стало интересно :) решил погуглить


там есть

function userdata.numberformat(amount)
-- replace decimal point with comma (= German format)
return string.gsub(string.format("\%.2f", amount), "%.", ",")
end
 
"Спасибо" student от:
 


Опции темы



Часовой пояс GMT +3, время: 08:47.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.