1

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

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

我有这个代码..

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 
4

1 回答 1

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
于 2012-09-06T14:56:57.597 回答