我有一个脚本使用parseFloat分配变量,如下所示:

var vendorCost = parseFloat(vendorSearchresults[0].getValue('vendorcost')).toFixed(2);


我以为这会使变量成为数字。但是,当我使用typeof进行检查时-它以字符串形式报告。我的解决方案如下:

vendorCost = parseFloat(vendorCost);


哪个可行,但是我想在编码时提高效率,并且想了解为什么分配数字时它不会使vendorCost成为数字?有没有一种方法可以使第一个语句使vendorCost成为一个数字而无需第二个语句?提前致谢。

更新-只是以为我应该提到我在没有使用.toFixed的情况下完全一样的问题-

    var vendorLandedCost = parseFloat(vendorSearchresults[0].getValue('custentity_asg_landed_cost','vendor'));
    vendorLandedCost = parseFloat(vendorLandedCost);

最佳答案

最后一个toFixed()调用将第一个parseFloat的结果转换为字符串。

看来您需要将数字四舍五入到小数点后两位,这就是为什么要使用parseFloat调用的原因。您可以改为执行以下操作:

vendor_cost = Math.round(parseFloat(vendorSearchresults[0].getValue('vendorcost')) * 100) / 100

关于javascript - 无法将javascript字符串转换为数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27069742/

10-12 19:19