0

我想保存产品序列号,我创建了一个表

dbo.tStock
productType tinyint,
IdProduct int, 
ItemTypeNum tinyint, 
FirstSNum  nchar (20), 
LastSNum   nchar (20), 
TotalQty   bigint

当用户插入totalQty第一个序列号FirstSNum时,应用程序应按顺序计算最后一个序列号。
在我的页面中,我使用了 javascript 函数:

function Calculate() {
            var txt1 = document.getElementById('<%= txtTotalQty.ClientID%>').value
            var txt2 = document.getElementById('<%= txtFirstserial.ClientID%>').value
            if (txt1 != '' && txt2 != "")
                document.getElementById('<%= txtLastSerial.ClientID%>').value = 
                eval((parseFloat(txt1)-1 + parseFloat(txt2)))
        }

问题是当序列号以零(前导零)开头时,我计算错误,例如:
totalQty: 100
Firstserial: 01000
LastSerial: 1099 ( WRONG ) 它应该是=01099
我正在使用 ASP.NET C#,
任何想法? 我感谢任何努力;-)

4

1 回答 1

0

eval((parseFloat(txt1)-1 + parseFloat(txt2)))

你不需要eval()。只需添加值。

parseFloat()完全按照锡上所说的那样做。它将字符串"01000"转换为数字:1000. 所以你最终只得到一个数字,而数字没有前导零。

如果你想对结果数字进行零填充,你需要自己做。

("00000" + (parseFloat(txt1)-1 + (parseFloat(txt2))).toString()).substr(-5,5);

进行计算,将其转换为字符串,在其前面加上“00000”,然后取最右边的五个字符。

于 2012-04-24T12:07:09.607 回答