将 JavaScript 字符串转换为数字时出现问题

Trouble converting javascript string to number

本文关键字:问题 数字 JavaScript 字符串 转换      更新时间:2023-09-26

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

好吧,Number.toFixed返回字符串,因为它是一个数据表示函数。

请参阅文档。