我正在使用名为TEC-IT Wedge的应用程序来与杂货店进行交互(对于那些不知道杂货规模的人来说,这是一个带扫描仪的美化规模。
秤连接到PC上的串口,然后楔形应用程序监视该端口,下面的代码处理条形码的扫描然后请求重量,所有这一切都正常。
我遇到的问题是从规模中形成返回的权重。
从秤中返回的数据格式为ASCII“S11 ####”,因此S110004将用于重量为0.04磅的物品,这就是我需要将该等待发送到我们正在使用的应用程序缩放以输入数据。对于以下代码返回S110004,它返回00.4
我认为由于某种原因,我在抓取数字时会失去0,将小数点放在正确的位置。
var cartonverify = Left(DATARAW, 5);
var weightverify = Left(DATARAW, 3);
if (cartonverify == "S08B3")
{
ActivateWindow("Untitled - Notepad");
SendKeyStrokes(DATARAW.replace(/^S08B3+/i, '') );
DATA = "";
WriteToDevice("S11\x0d", 1000);
}
if (weightverify == "S11")
{
ActivateWindow("Untitled - Notepad");
var cartwieght = Right(DATA, 4);
if (cartwieght.length == 4)
{
var cartounces = Right(cartwieght, 2);
var cartpounds = Left(cartwieght, 2);
var WMWeight = cartpounds + "." + cartounces;
SendKeyStrokes(WMWeight);
DATA = "";
}
}
答案 0 :(得分:0)
将您的字符串重新形成可以根据需要解析为数字的字符串。
var str = 'S110004';
str = str.replace(/S11(\d\d)(\d\d)/, '$1.$2'); // "00.04"
var num = parseFloat(str); // 0.04
将小数位放在 RegExp 步骤中,也可以避免使用除法。