javascript - 值计算不正确

标签 javascript jquery

我已经创建了函数来划分值,但问题是,当放置函数 parseInt 并检查它是否避免 (,) 之后的数字时,就像使用 parseInt() 后的值是 345,00.95 一样,它会变成 645 可以任何有人帮我看看为什么会发生这种情况

  function liquid(val) {
    $(".overlay").show();
    $.ajax({
        url: "portfolio/getPortfolioInfo.php",
        dataType: "json",
        data: "portfolio_id=" + val,
        type: "post",
        error:function(){
            $(".overlay").hide();
        },
        success: function (data) {
            $(".overlay").hide();
            $("#liquidity").html(data.liquidity);
            var num_left = data.liquidity / parseFloat(<?php echo $company['price']; ?>);
            var rounded_value   = Math.round(num_left);
            $(".shares_left").html("<p>You can buy up to " + rounded_value + " </p>");
            console.log("liquidity" + parseInt(data.liquidity) + "rate" +parseFloat(<?php echo $company['price']; ?>));
        }
    });
}

最佳答案

考虑您提供的示例

parseInt(345,00.95)

将仅输出初始整数部分

345

就你的情况

即使您删除了最初的 ',',即如果您的号码是 parseInt(34500.95),仍然只会给出 34500 忽略小数部分

要实现您想要的效果,请先从数据中删除所有 ','

为此,请使用与数据中所有 ',' 匹配的正则表达式进行替换

(data.liquidity).replace(/,/g,'')

这将输出

34500.95

然后对其应用parseFloat

所以你的最终代码应该是 parseFloat((data.liquidity).replace(/,/g,''));

关于javascript - 值计算不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44971095/

相关文章:

javascript - 检测子 div 是否比父 div 宽?

javascript - 有没有办法隐藏按钮但保留其功能

javascript - 从 JSON 对象和元素类名称中收集数组并进行比较

javascript - 从包含 Javascript 路径的对象列表创建一棵树

javascript - 从 rest node.js 压缩 json 数据使用快速压缩

javascript - 确定是否单击了 Google Chrome 打印预览中的打印/取消按钮

javascript - 如何验证每组复选框中至少选中一个复选框

javascript - 通过 javascript 拦截文档中的每次点击

javascript - 在复选框限制后显示消息(多个实例)

javascript - 为什么伪类:active work?没有