2016-04-10 5 views
-2

私は一定時間内に焼かれたカロリーの量を計算する電卓を作ろうとしていますが、実行するたびに出力として0が得られます。私の番号が0になるのはなぜですか?

const AGECONST = 0.2017; 
const WEIGHTCONST = 0.09036; 
const HRCONST = 0.6309; 
const SUBTRACTCONST = 55.0969; 
const TIMECONST = 4.184; 

//var gender = document.getElementById("gender").innerHTML; 
var gender = "male"; 
var weight = document.getElementById("weight"); 
var age = document.getElementById("age"); 
var time = document.getElementById("time"); 
var hr = 140;//dummy number 

function calculate(){ 
if (gender = "male"){ 
var calorieCount = ((age * AGECONST) - (weight * WEIGHTCONST) + (hr * HRCONST) - SUBTRACTCONST) * time/TIMECONST; 
} 
//else if (gender = "female"){ 

//} 

var calorieCountOut = calorieCount.toString(); 

document.getElementById("output").innerHTML = calorieCountOut; 

} 
+0

各変数のconsole.logを作成します。入力がうまくいかないようです – IsraGab

+0

要素に重み、年齢、時間を割り当てると、実際の値を得るには '.value'や' .innerHTML'のようなことをする必要があります。値は文字列になりますが、乗算演算子を使用している限り、parseIntやparseFloatのような数字でキャストする必要はありません。 – Ultimater

+1

'if(gender =" male ")'は常に真です。 – Xufox

答えて

-1

値のためgetElementById('myId').valueを試してみてください。ここに私のコードである私は、任意の数にcalorieCountOut変数を設定しようとしているし、それが正常に動作しますが、私はここに、このコードでそれを実行するたびに、私は0を取得しますオブジェクトをコントロール自体の代わりにコントロールの内部に配置します。

今、変数にhtmlオブジェクトを割り当てますが、あなたが望むのは、そのhtmlオブジェクトに格納されている番号です。

+0

私はHTMLファイルで関数を呼び出します。これは、体重、年齢、および時間変数を数値に設定したときに機能します。変数が文字列として入力されている可能性があります。数値/倍を作る方法はわかりません。 –

+0

@KyleHabigあなたは右に編集されました – nhouser9

+0

また、.innerHTMLを使用すると、NaNが結果として得られます。文字列値を数値に変換するにはどうすればよいですか? –

関連する問題