[英]Why am I losing the decimal when working this equation in Javascript?
我正在研究一個計算器,以計算x天數后某人系統中仍存在多少物質。 這三個變量是每天服用的量,服用天數以及該物質的半衰期。 我下面的公式可能不是100%正確的,但這不是我目前遇到的問題。 我在將答案轉換為整數時遇到問題。 我要去哪里錯了? 我需要一切都保持浮點(十進制)值。
PS忽略注釋,僅在此處添加了注釋以解釋變量。
dose = 8.00 // 8mg dose
meta = 70.0 // 70 hour half-life
days = 5 // 5 days of use
sys = dose * (1.0/2.0) ^ (24.0/meta)
for(x=2; x <= days; x++){
sys = ((sys+dose) * (1.0/2.0) ^ (24.0/meta))
}
提前致謝!
javascript中的^
不是數學的“加冪”運算符,它是按位XOR運算符,並且始終給出整數。 您想使用Math
類中的pow
。
嘗試
sys = dose*Math.pow((1.0/2.0), (24.0/meta))
和
sys = (sys+dose)*Math.pow((1.0/2.0), (24.0/meta))
代替
是的,JavaScript自動將整數轉換為整數。 一旦具有十進制值(非0)(例如1.5),則應考慮浮點數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.