javascript - 简单的 JavaScript 添加问题

标签 javascript math

我不太擅长 JS,出于某种原因,当我尝试将两个字段加在一起时,它会将它们连接起来而不是将总和加在一起。这是我正在尝试使用的代码。

    function calculateTotal() {

        var postageVal = document.getElementById('postage').value; //$68.50
        var subtotalVal = document.getElementById('subtotal').value; //$378.00

        var postage = postageVal.substr(1); //68.50
        var subtotal = subtotalVal.substr(1); //378.00
        var totalVal = postage+subtotal;

        alert(postage);
        alert(subtotal);
        alert(totalVal);

    };

totalVal 正在回显/警告 68.50378.00 而不是将它们相加。有人可以告诉我哪里出错了吗? :( 我的想法是用 totalVal 更新“总计”文本字段,但我还没有做到这一点!

最佳答案

您需要在添加之前将您的值转换为 float :

var totalVal = parseFloat(postage) + parseFloat(subtotal);

编辑:这是一个完整的示例,其中包括对 NaN 的检查:

function calculateTotal() {

    var postageVal = document.getElementById('postage').value; //$68.50
    var subtotalVal = document.getElementById('subtotal').value; //$378.00

    var postage = parseFloat(postageVal.substr(1)); //68.50
    var subtotal = parseFloat(subtotalVal.substr(1)); //378.00
    var postageAsFloat = isNaN(postage) ? 0.0 : postage;
    var subtotalAsFloat = isNaN(subtotal) ? 0.0 : subtotal;
    var totalVal = postageAsFloat + subtotalAsFloat;

    alert(postage);
    alert(subtotal);
    alert(totalVal);

};

关于javascript - 简单的 JavaScript 添加问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/955509/

相关文章:

python - 数组的所有排列,其中数组中的每个元素必须按0到n之间的范围递增

c# - 图像余弦波

javascript - JQuery 不工作,因为 Mootools 已经加载到 joomla

以随机位置开始的 Javascript 对象

javascript - 如何在angularJs中显示选中的单选按钮值

c++ - 给定以弧度为单位的距离和角度,获取绕点旋转的物体的 X、Y 位置的函数?

javascript - 检测鼠标按下时单击的元素

javascript - 为什么 AngularJS 表单发布有时会有一个参数为空?

javascript - 跟随鼠标位置的平滑移动效果

java - Nginx平滑权重负载均衡算法如何数学证明?