我有一个脚本使用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);
答案 0 :(得分:1)
最后一次toFixed()调用将第一个parseFloat的结果转换为字符串。
看起来你需要将数字四舍五入到小数点后两位,这就是你使用parseFloat调用的原因。你可以这样做:
vendor_cost = Math.round(parseFloat(vendorSearchresults[0].getValue('vendorcost')) * 100) / 100
答案 1 :(得分:0)
好吧,Number.toFixed
返回字符串,因为它是一个数据表示函数。
请参阅the docs。