[英]Calculation of JQuery in while loop
嘗試使用jquery計算收支平衡點(BEP):
function roundToTwo(num) { return +(Math.round(num * 100) / 100); } var text = "" var quantity = 1; var buy = 0; var sell = 10; var bep_pnl = -0.5; if (buy == 0) { buy = roundToTwo(sell - 0.01); while (bep_pnl < 0.01) { total_amnt_trade = roundToTwo((quantity * buy) + (quantity * sell)); var brokerage_amnt_buy = ((buy * quantity) * 0.08) / 100; if (brokerage_amnt_buy >= 25) { var brokerage_buy = 25; } else { var brokerage_buy = brokerage_amnt_buy; } var brokerage_amnt_sell = ((sell * quantity) * 0.08) / 100; if (brokerage_amnt_sell >= 25) { var brokerage_sell = 25; } else { var brokerage_sell = brokerage_amnt_sell; } var brokerage = roundToTwo(brokerage_buy + brokerage_sell); //brokerage var transaction_charges = roundToTwo((((buy * quantity) + (sell * quantity)) * 0.00325) / 100); //Transaction Charges var gst = roundToTwo((((transaction_charges * 18) / 100) + (brokerage * 18) / 100)); //GST var total_charges = roundToTwo(brokerage + transaction_charges + gst); bep_pnl = roundToTwo(((sell - buy) * quantity) - total_charges); text += "<br />New Buy " + buy + " and profit " + bep_pnl; buy = roundToTwo(buy - 0.01); } var bep = roundToTwo(sell - buy); $('#demo').text(bep); document.getElementById("testing").innerHTML = text; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <p id="demo"></p> <h1 id="testing"></h1>
運行上述代碼時, BEP的結果為0.04 。 但是應該為0 。
我認為這是一個技術問題(也許在while循環中 ),因為公式正確。 (可以在<h1>
進行交叉檢查
這是額外的buy = roundToTwo(buy - 0.01);
在 while循環終止之前 ,給出的結果是.04。 您需要在循環的開始而不是結束時減少購買。 設置buy = sell
,然后再進入,然后移動buy = roundToTwo(buy - 0.01);
到循環的開始。
var bep = roundToTwo(sell - buy);
的結果將是0.03 var bep = roundToTwo(sell - buy);
,與New Buy 9.97 and profit 0.01
的輸出一致。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.