我想保存产品序列号,我创建了一个表
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(错误)它应该是= 01099
我正在使用ASP.NET C#,任何想法?我感谢任何努力; - )
答案 0 :(得分:0)
eval((parseFloat(txt1)-1 + parseFloat(txt2)))
您不需要eval()
。只需添加值。
parseFloat()
完全按照它所说的那样做。它会将字符串"01000"
转换为数字:1000
。所以你最后只得到一个数字,数字没有前导零。
如果你想对结果数进行填零,你需要自己做。
("00000" + (parseFloat(txt1)-1 + (parseFloat(txt2))).toString()).substr(-5,5);
进行计算,将其转换为字符串,在其前面添加“00000”,然后取最右边的五个字符。