我已经创建了函数来划分值,但问题是,当放置函数 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/