价值没有正确地进行

时间:2017-07-07 12:43:54

标签: 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']; ?>));
        }
    });
}

1 个答案:

答案 0 :(得分:1)

考虑您提供的样本

  

parseInt函数(345,00.95)

将仅输出

的初始整数部分
  

345

在你的情况下

即使您已移除了最初的',',如果您的号码为parseInt(34500.95),那么仍然只会34500忽略小数部分

要实现您要查找的内容,请先从数据中删除所有','

要使用替换为匹配数据中所有','的正则表达式

  

(data.liquidity).replace(/,/克,&#39;&#39)

这将输出

  

34500.95

然后将 parseFloat 应用于它

因此,您的最终代码应为 parseFloat((data.liquidity).replace(/,/g,''));