1

NaN の結果が得られ続ける理由を理解してくれる人はいますか?

   function showShares() {
 var tot = document.getElementById('total').innerHTML;
 var pri = document.getElementById('price').innerHTML;
 var per = document.getElementById('percent').innerHTML;

 var shar = parseInt(tot, 10) * parseFloat(per) / parseFloat(pri);
   document.getElementById("shares").innerHTML=Math.round(shar);

}

<td><text id="price"><%= StockQuote::Stock.quote(current_user.fund1).last %></text></td>

 <td><text id="shares"></text></td>
 <td><text id="percent">.50</text></td>

<p class="alignright1"><input type="text" id="total" size="8"></input>
<br><a href onclick="showShares()">here</a>


株価はセルに整数を返しています。25.38。埋め込まれたルビーを削除して単純な整数を配置すると、同じ NaN が返されます。50. 入力を数字に置き換えても同じです。

ありがとうございました

4

2 に答える 2

1

これを試して :

function showShares() {
 var tot = document.getElementById('total').innerHTML;
 var pri = document.getElementById('price').innerHTML;
 var per = document.getElementById('percent').innerHTML;

 var shar = parseInt(tot, 10) * parseFloat(per, 10) / parseInt(pri, 10);
   document.getElementById("shares").innerHTML=Math.round(shar);

}

パーセント値はフロート (コンマ付きの数字) であり、フロートのように JS エンジンによって解釈される必要があります ;)

于 2013-09-28T00:02:51.017 に答える