我需要计算一些不相等数字的百分比。我使用parseFloat
来计算百分比,但它仅适用于像2000或200这样的舍入数字,它给出了20%和2%。我没有为2200或220工作达到2.2%或22.2%。
$(document).on('keyup', '.js-baOfferPrice.percentage', function(e) {
var s, target = $(e.target);
var p = $('.js-baAppPrice').text();
s = parseFloat(parseInt(target.val(), 10) * 100) / parseInt(p, 10);
target.val() === "" ? target.val("") : target.val(Math.round(s).toFixed(0));
});
有人可以帮忙吗?
答案 0 :(得分:2)
将.toFixed(0)
更改为.toFixed(1)
并删除Math.round()
这一行:
target.val() === "" ? target.val("") : target.val(Math.round(s).toFixed(0));
将成为:
target.val() === "" ? target.val("") : target.val(s.toFixed(1));
参考:toFixed
Stack Overflow参考:Math.round(num) vs num.toFixed(0)
答案 1 :(得分:1)
请勿拨打Math.round(s)
,因为这会删除该号码的小数部分。只需使用toFixed
,并指定那里的小数位数。它会围绕这个数字。
if (target.val() !== "") {
s = parseFloat(parseInt(target.val(), 10) * 100) / parseInt(p, 10);
target.val(s.toFixed(1));
}