我已经创建了函数来分配值,但问题是当放置函数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']; ?>));
}
});
}
答案 0 :(得分:1)
考虑您提供的样本
parseInt函数(345,00.95)
将仅输出
的初始整数部分345
在你的情况下
即使您已移除了最初的','
,如果您的号码为parseInt(34500.95)
,那么仍然只会34500
忽略小数部分
要实现您要查找的内容,请先从数据中删除所有','
要使用替换为匹配数据中所有','
的正则表达式
(data.liquidity).replace(/,/克,&#39;&#39)
这将输出
34500.95
然后将 parseFloat 应用于它
因此,您的最终代码应为 parseFloat((data.liquidity).replace(/,/g,''));