0

我正在使用计算器来计算 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))

}

提前致谢!

4

2 回答 2

6

^在 javascript 中不是数学上的“提高幂”运算符,它是按位 XOR 运算符,并且总是给出一个整数。你想powMath课堂上使用。

尝试

sys = dose*Math.pow((1.0/2.0), (24.0/meta))

sys = (sys+dose)*Math.pow((1.0/2.0), (24.0/meta))

反而

于 2013-08-09T16:20:12.743 回答
-2

是的,JavaScript 会自动将整数转换为整数。一旦它有一个十进制值(0 以外),例如 1.5,它应该尊重浮点数。

于 2013-08-09T16:20:07.143 回答