我一直在尝试使用一个公式来计算我们团队正在创建的程序中的专有增值税。在计算器或excel中使用时,该公式可以正常工作,但在程序中的函数中使用时,会给出不同的输出!

这是函数:

function fn_calcVat()
{
    var vRate = Ext.getCmp('crd_vat_rate').getValue();
    var vTranAmt = Ext.getCmp('crd_tran_amt').getValue();

    if (vRate != '' && vTranAmt != '')
    {
        alert(Ext.getCmp('vatable').getValue().toString());
        var vAmt = 0;
        if (Ext.getCmp('vatable').getValue().toString() == 'Y')
        {
            vAmt = (vRate / ((vTranAmt / 100) + 1));
            Ext.getCmp('crd_vat_amt').setValue(vAmt.toFixed(2));
            Ext.getCmp('crd_tran_tot').setValue(vTranAmt.toString());
            vAmt = 0;
        }
        else
        {
            vAmt = ((vRate / 100) * vTranAmt);
            Ext.getCmp('crd_vat_amt').setValue(vAmt.toFixed(2));
            Ext.getCmp('crd_tran_tot').setValue((vTranAmt + vAmt));
            vAmt = 0;
        }
    }
}


问题公式为vAmt = (vRate / ((vTranAmt / 100) + 1));

另一个公式运行良好。

例如,输入值为100,增值税率为14.00,预期答案为税额14,尽管它的值为7!

我们正在使用EXTJS,js和C#的混搭...

任何帮助将不胜感激。

亲切的问候

缺口

最佳答案

公式不正确,应该是

vAmt = vTranAmt * (vRate / 100.0d);

09-07 00:30