我有一个脚本使用 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/