使用 jquery 计算加班费等付款的百分比
Calculate percentage from payments like upwork using jquery
我正在创建一个百分比计算,例如在他自己的网站上使用 upwork
当我从基础金额计算百分比时,百分比计算工作正常
百分比为 10%
假设基础金额89.00
,我得到的百分比值是8.90
,扣除后我将得到的估计金额是80.10
这是此
的代码
$('txtclientBid').on('input', function() {
var clientRate = parseFloat($(this).val()) || 0;
var num = parseFloat(clientRate) || 0;
// $discount_value = ($total / 100) * $percent;
var val = (num - (num * .1)).toFixed(2);
var fee= (num /100) * 10;
$(settings.txtcarrierRate).val(val);
$('.siteFee').val('-'+fee.toFixed(2))
});
但是当我根据估计金额计算基本金额时,我得到了不同的值
例如使用上述相同的场景,如果我在估计金额中输入 80.10
,那么我得到的百分比值是 8.01
,我得到的基本金额是 88.11
有人能告诉我为什么我在这两种情况下得到不同的值吗
案例 2 工作不正常
这是我的代码
$('.txtbidderRate').on('input', function() {
var carrierRate = parseFloat($(this).val()) || 0 ;
var num = parseFloat(carrierRate) || 0;
var val = (num + (num * .1)).toFixed(2);
var fee= (num /100) * 10;
$(settings.txtclientRate).val(val);
$('.siteFee').val('-'+fee.toFixed(2))
});
这是数学。
假设基数是 100。100 的 10% = 10。扣除后,100-10 = 90。
即
Estimated Amount = Base Amount - 0.1*Base Amount = 0.9*Base Amount
现在考虑另一种情况。你想从 90 中取回 100,即你想从估计金额中获取基本金额。
所以,根据上面的等式,
Base Amount = Estimated Amount/0.9
即基础金额 = 90/0.9 = 100.
您正试图对这两种情况应用相同的等式 - 这显然行不通。
希望这是你的误会。
所以我猜你的第二个 val
应该这样计算:
val = (num/0.9).toFixed(2);
编辑:
好吧,让我们把事情简单化。假设您有 89 美元——这是您的基本金额。根据你写的,
Estimated Amount = Base Amount - 10% of Base Amount
这基本上意味着
Estimated Amount = 100% of Base Amount - 10% of Base Amount = 90% of Base Amount
所以,
Estimated Amount = 90% of Base Amount = (90/100)*Base Amount = 0.9*Base Amount
现在反过来想想,你有 Base Amount
而你想要 Estimated Amount
。我们如何获得它?
因为Estimated Amount = 0.9*Base Amount
,我们可以说Base Amount = Estimated Amount/0.9
(两边除以0.9)
所以从你的 89 美元起,
估计金额 = 0.9*89 = 80.1 美元
现在假设您得到了估计金额,即 80.1 美元,我们需要找到基本金额
我们从上面知道Base Amount = Estimated Amount/0.9
,所以我们有
Base Amount = 80.1/0.9 =
希望这对您有所帮助。
我正在创建一个百分比计算,例如在他自己的网站上使用 upwork
当我从基础金额计算百分比时,百分比计算工作正常 百分比为 10%
假设基础金额89.00
,我得到的百分比值是8.90
,扣除后我将得到的估计金额是80.10
这是此
的代码$('txtclientBid').on('input', function() {
var clientRate = parseFloat($(this).val()) || 0;
var num = parseFloat(clientRate) || 0;
// $discount_value = ($total / 100) * $percent;
var val = (num - (num * .1)).toFixed(2);
var fee= (num /100) * 10;
$(settings.txtcarrierRate).val(val);
$('.siteFee').val('-'+fee.toFixed(2))
});
但是当我根据估计金额计算基本金额时,我得到了不同的值
例如使用上述相同的场景,如果我在估计金额中输入 80.10
,那么我得到的百分比值是 8.01
,我得到的基本金额是 88.11
有人能告诉我为什么我在这两种情况下得到不同的值吗 案例 2 工作不正常 这是我的代码
$('.txtbidderRate').on('input', function() {
var carrierRate = parseFloat($(this).val()) || 0 ;
var num = parseFloat(carrierRate) || 0;
var val = (num + (num * .1)).toFixed(2);
var fee= (num /100) * 10;
$(settings.txtclientRate).val(val);
$('.siteFee').val('-'+fee.toFixed(2))
});
这是数学。
假设基数是 100。100 的 10% = 10。扣除后,100-10 = 90。
即
Estimated Amount = Base Amount - 0.1*Base Amount = 0.9*Base Amount
现在考虑另一种情况。你想从 90 中取回 100,即你想从估计金额中获取基本金额。
所以,根据上面的等式,
Base Amount = Estimated Amount/0.9
即基础金额 = 90/0.9 = 100.
您正试图对这两种情况应用相同的等式 - 这显然行不通。
希望这是你的误会。
所以我猜你的第二个 val
应该这样计算:
val = (num/0.9).toFixed(2);
编辑:
好吧,让我们把事情简单化。假设您有 89 美元——这是您的基本金额。根据你写的,
Estimated Amount = Base Amount - 10% of Base Amount
这基本上意味着
Estimated Amount = 100% of Base Amount - 10% of Base Amount = 90% of Base Amount
所以,
Estimated Amount = 90% of Base Amount = (90/100)*Base Amount = 0.9*Base Amount
现在反过来想想,你有 Base Amount
而你想要 Estimated Amount
。我们如何获得它?
因为Estimated Amount = 0.9*Base Amount
,我们可以说Base Amount = Estimated Amount/0.9
(两边除以0.9)
所以从你的 89 美元起,
估计金额 = 0.9*89 = 80.1 美元
现在假设您得到了估计金额,即 80.1 美元,我们需要找到基本金额
我们从上面知道Base Amount = Estimated Amount/0.9
,所以我们有
Base Amount = 80.1/0.9 =
希望这对您有所帮助。