0

x日後に誰かのシステムに残っている物質の量を計算する計算機に取り組んでいます。3 つの変数は、毎日摂取する量、摂取した日数、物質の半減期です。以下の式は 100% 正しいとは限りませんが、現時点で問題はありません。整数に変換される答えに問題があります。どこが間違っていますか?float (10 進数) 値を維持するには、すべてが必要です。

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

^in javascript は数学的な「累乗」演算子ではなく、ビット単位の XOR 演算子であり、常に整数を返します。クラスpowから使いたい。Math

試す

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 は自動的に整数を整数にキャストします。1.5 などの 10 進数値 (0 以外) を持つと、float を尊重する必要があります。

于 2013-08-09T16:20:07.143 に答える