簡體   English   中英

為什么在Javascript中使用此公式時會丟失小數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM