Javascript 输出 - NaN 消息

标签 javascript jquery html

谁能帮我解决这个问题。
我试图通过使用 document.getElementById("XXXout").innerHTML=XXX 来填充表格来输出元素的结果,但是返回的值是 NaN (如下图所示)。我尝试了几个小时来解决这个问题,但我仍然停留在这个问题上。请帮助我!

enter image description here

var porfolio = function() {
  var ExpectReturnofStock = $("#ExpectReturnofStockin").val();
  var StdStock = $("#StdStockin").val();
  var StdBond = $("#StdBondin").val();
  var ExpectReturnofBond = $("#ExpectReturnofBondin").val();
  var CorreSB = $("#CorreSBin").val();
  var rf = $("#rfin").val();
  var WB = $("#WBin").val();
  var wss = 1 - WB;
  WS = parseFloat(wss);
  var ExpectReturnofPorfolio = (WB * ExpectReturnofBond + WS * ExpectReturnofStock).toFixed(2);
  var StdPorfolio = (Math.pow((Math.pow(WS * StdStock, 2) + Math.pow(WB * StdBond, 2) + 2 * WS * StdStock * WB * StdBond * CorreSB), 1 / 2)).toFixed(2);
  var sp = ((ExpectReturnofPorfolio - rf) / StdPorfolio).toFixed(2);
  document.getElementById("WSout").innerHTML = WS;
  document.getElementById("ExpectReturnofPorfolioout").innerHTML = ExpectReturnofPorfolio;
  document.getElementById("StdPorfolioout").innerHTML = StdPorfolio;
  document.getElementById("spout").innerHTML = sp;

};
<!DOCTYPE html>
<html>

<head>
  <!-- Bootstrap Core CSS -->
  <link href="css/bootstrap.min.css" rel="stylesheet">
  <!-- Custom CSS -->


</head>

<body>
  <p>Exchange Rates</P>
  <div class='comment-input'>
    <table border="1">
      <tr>
        <th>Stock Fund:</th>
        <td>Expect Return:</td>
        <td>
          <input type="number" id="ExpectReturnofStockin" size="12" value="">
        </td>
        <td>Standard Deviation:</td>
        <td>
          <input type="number" id="StdStockin" size="12" value="">
        </td>
      </tr>
      <tr>
        <th>Bond Fund:</th>
        <td>Expect Return:</td>
        <td>
          <input type="number" id="ExpectReturnofBondin" size="12" value="">
        </td>
        <td>Standard Deviation:</td>
        <td>
          <input type="number" id="StdBondin" size="12" value="">
        </td>
      </tr>
      <tr>
        <th></th>
        <td>Correlation:</td>
        <td>
          <input type="number" id="CorreSBin" size="12" value="">
        </td>
        <td>Risk Free Rate:</td>
        <td>
          <input type="number" id="rfin" size="12" value="">
        </td>
      </tr>
    </table>
  </div>
  </br>
  </br>
  <div class='comment-output'>
    <table border="1">
      <tr>
        <th>Porfolio</th>
        <th>Weight Stock</th>
        <th>Weight Bond</th>
        <th>Expect Return</th>
        <th>Standard Deviation</th>
        <th>Sharpe</th>
      </tr>
      <tr>
        <td>1</td>
        <td id="WSout" size="auto"></td>
        <td>
          <input type="text" id="WBin" size="auto">
        </td>
        <td id="ExpectReturnofPorfolioout" size="auto"></td>
        <td id="StdPorfolioout" size="auto"></td>
        <td id="spout" size="auto"></td>
      </tr>
    </table>
  </div>
  <input type="button" value="Count Words" onclick="porfolio();">
  <p class='WSout'></p>
  <!-- jQuery -->
  <script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
  <script src="../Fin380Html/fin380.js"></script>
</body>

</html>

最佳答案

在不重写所有代码的情况下.. 你在这里有很多问题,因为你在对字符串进行数学运算。

任何时候你使用 val()toFixed() 你都会得到一个字符串。你不能在字符串上做数学......它只是行不通。看下面的例子

$("#test").click(function(){
  var num1 = $('#number1').val();
  var num2 = $('#number2').val();

  // we'll get "12" instead of 3
  alert(num1 + num2);   

  // we convert the text into actual numbers here
  num1 = parseFloat(num1);
  num2 = parseFloat(num2);

  // now since we're dealing with numbers.. we'll get 3
  alert(num1 + num2);
});

<input id="number1" value="1" />
<input id="number2" value="2" />
<input type='button' id="test" value="test!" />

这里有一个 fiddle ,你可以试试 https://jsfiddle.net/svaq90t3/

关于Javascript 输出 - NaN 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35143271/

相关文章:

javascript - 如何对 jQuery 中的选择器返回的值进行折叠?

javascript - 在 ArcGIS Web AppAbuilder 中将自定义库添加到微件

javascript - 为什么条件变量初始化需要 "var"?

javascript - React DND - 拖放事件后无法将新项目添加到状态

html - 并非类中的所有样式都适用

javascript - 使 Canvas 动画成为父 div 上的背景元素

javascript - Cycle2 寻呼机不显示

Javascript : Cant get divs to align properly

html - data-ajax ="false"在 jquery mobile 中无法正常工作

javascript - 使用Jquery选择页面上具有data-canvas-width属性和不同宽度的div