经典ASP:我的代码将数量从十几个转换为一个(例如10.3打= 123个)有什么问题

时间:2012-09-06 14:49:24

标签: asp-classic

我想要的是从片断中检索数据库中的数量并将其转换为打打。然后输入十几个并转换回碎片并再次保存到数据库。

当我输入数据时,例如。 10.3,它应该为我转换为123件((10 * 12)+ 3)。我的代码在没有“If子句”的情况下运行良好,但仅在数据为“单一”类型时才有效。当我输入整数时它出错了,所以我先添加“If ..”语句来检查它,现在输出对于Integer是正确的但输入单个数字时不正确。

我有这段代码..

Function DzToPcs(val)

'If CLng(val) = val then <-- not work
'if Fix(val) <> val then <-- work but the output was not correct when input single type number.
if Int(vInt) = vInt then <-- work but the output was not correct when input single type number.
    DztoPcs = val * 12
else
    strInt =  Cstr(val)
    a = Split(strInt,".")

    dz = a(0) 
    pcs = a(1)

    getdz = Cint(dz)
    getpcs = Cint(pcs)

    DztoPcs = (getdz * 12) + getpcs
end if 

1 个答案:

答案 0 :(得分:1)

我不确定你的if语句有什么问题(我的VBScript有点生疏),但你可以试试这个替代方案:

Function DzToPcs(val)

    strInt =  Cstr(val)
    a = Split(strInt,".")
    dz = a(0) 

    if UBound(a) > 0 then
        pcs = a(1)
        getdz = Cint(dz)
        getpcs = Cint(pcs)
        DztoPcs = (getdz * 12) + getpcs
    else
        DztoPcs = dz * 12
    end if 

end function