iT邦幫忙

0

計算式無法運算,想請問是哪裡漏了?

  • 分享至 

  • xImage

https://ithelp.ithome.com.tw/upload/images/20200617/20128012kqsQh9GmeI.pnghttps://ithelp.ithome.com.tw/upload/images/20200617/20128012qthuYnFw7K.png

  var inputP = document.getElementById("period"); // 取得還款期
  var period = parseFloat(inputP.value); // 將欄位內容轉成浮點數
  
  var inputT = document.getElementById("Target"); // 取得指標利率
  var Target = parseFloat(inputT.value); // 將欄位內容轉成浮點數
  
  var inputI = document.getElementById("interest"); // 取得銀行利率
  var interest = parseFloat(inputI.value); // 將欄位內容轉成浮點數
  
  var inputF = document.getElementById("fee"); // 取得手續費
  var fee = parseFloat(inputF.value); // 將欄位內容轉成浮點數

  // 若 height、weight 任一變數非數值, 即結束函式
  if(isNaN(loan) || isNaN(period)|| isNaN(Target)|| isNaN(interest)|| isNaN(fee)) return;
  
  // 若任一變數小於或等於 0 即結束函式
  if(loan<=0 || period<=0 || fee<=0) return;
  
  // 將指標利率轉為百分比
  Target = Target / 100;
  
  // 將銀行利率轉為百分比
  interest = interest / 100;
  
  // 總還款金額 = 貸款金額*(1+指標利率+銀行利率)還款期次方+手續費
  document.getElementById("cost").innerHTML = 
                       loan * (Math.pow(1 + Target+interest, period)+fee;
}
</script>
dragonH iT邦超人 5 級 ‧ 2020-06-17 22:54:42 檢舉
漏了把圖片換成文字這個步驟
blopo0401 iT邦新手 5 級 ‧ 2020-06-17 23:14:31 檢舉
甚麼意思呀?不好意思 剛學不太懂
ccutmis iT邦高手 2 級 ‧ 2020-06-18 11:28:21 檢舉
把 <script>...</script>整段放到</body>的前面試試。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
rogeryao
iT邦超人 7 級 ‧ 2020-06-17 22:57:33

function calculatecost()
onclick="calculateBMI()"

Demo

blopo0401 iT邦新手 5 級 ‧ 2020-06-17 23:15:04 檢舉

對ㄟ這個地方沒弄好
可是這邊改了還是沒反應

2
通靈亡
iT邦高手 1 級 ‧ 2020-06-18 00:12:01

首先
貼程式碼,或者貼到Playground網站給人家測試

接著
為什麼你有兩個id=period?
在一個HTML當中,每一個ID只允許出現在一個HTML標籤上
所以你修改還款年數一定會有問題
而且你的第24行括號沒成對,最右邊少了右括號

再來
「計算式無法運算」、「可是這邊改了還是沒反應」
別人不是跟你住在同個屋簷上,沒有人會通靈你做了什麼、螢幕出現什麼結果
沒有人幫你通靈出來,你只能眼睜睜看著程式死亡。

看更多先前的回應...收起先前的回應...
blopo0401 iT邦新手 5 級 ‧ 2020-06-18 01:45:13 檢舉

謝謝你的回答,第一次使用不太知道規矩抱歉。
第24行的右括號我加上去了
然後關於id=period的部分,我想讓他在下面顯示是跟著還款期改變的,不知道要怎麼修改比較好。

通靈亡 iT邦高手 1 級 ‧ 2020-06-18 09:23:04 檢舉

你網頁沒貼上來,程式碼也貼一半...

有語法錯誤

這一行的括號沒成對,Math.pow左邊多一個括號

  document.getElementById("cost").innerHTML = 
                       loan * (Math.pow(1 + Target+interest, period)+fee;

試算後上下period一致的問題

先把第二個id="period"改成別的id,例如:

還款年數: <span id="period_text">0</span>

最下面加上這行,把id=period_text的文字修改為id=period欄位的值

document.getElementById("period_text").innerHTML = period

輸入上面period欄位後,改變下面的還款年數

首先在id=period的欄位設定blur事件,當輸入完畢時(輸入游標的焦點離開欄位)要執行的function

<input type="number" id="period" onblur="changePeriodText()">

接著,在function撰寫程式碼,將id=period欄位的文字放到下面id=period_text當中

function changePeriodText () {
  var inputP = document.getElementById("period"); // 取得還款期
  var period = parseFloat(inputP.value); // 將欄位內容轉成浮點數
  
  if (isNaN(period)) {
  	period = 0;
  }
  
  document.getElementById("period_text").innerHTML = period;
}

完整程式碼:
https://jsfiddle.net/pb4z9u0e/1/

用他的公式算借 100 萬還 56 期總共要還 30 億這是哪家地下錢莊...

archer9080 iT邦研究生 3 級 ‧ 2020-06-18 10:10:25 檢舉

剛打完沒注意到前輩說出來了@@

我要發表回答

立即登入回答