在新函数中用提示数字除以

问题描述 投票:0回答:2

我写了一个程序,可以从你输入的数字中计算出你必须支付的银行票据(2,5,10,20,...)。

我想进一步进行下一步--我想把第一步插入的提示中的数字除以用户输入到新提示中的数字来计算一件商品的平均成本。

我怎样才能做到这一点呢?

这是我写的第一部分的代码。

var stevilo = prompt("Vnesi znesek:");

var bankovec = [500, 200, 100, 50, 20, 10, 5, 2, 1];
var stevilo_bankovcev = 0;
var izpisi = "";
for (i = 0; i < bankovec.length; i++) {
  var y = stevilo / bankovec[i];
  if (y >= 1) {
    var razlika = Math.floor(y) * bankovec[i];
    stevilo = stevilo - razlika;
    stevilo_bankovcev = Math.floor(y) + stevilo_bankovcev;
    izpisi = izpisi + Math.floor(y) + "x" + bankovec[i] + ",";
    console.log(izpisi);
  }
}
window.onload = function() {
  document.getElementById("gremo").innerHTML = "Za plačilo je potrebno " + izpisi;
}
<span id="gremo"></span>
javascript prompt calculation
2个回答
1
投票

我不确定我是否正确理解了这个问题,但如果你想在程序中添加的唯一的东西是另一个用户输入的变量,然后用这个变量做一个除法,这就可以了(虽然我不完全确定这将是什么用途)。

var stevilo = prompt("Vnesi znesek:");
var division = prompt("Dividing by this number:");

var bankovec = [500, 200, 100, 50, 20, 10, 5, 2, 1];
var stevilo_bankovcev = 0;
var total = stevilo/division;
var izpisi = "";
for (i = 0; i < bankovec.length; i++) {
  var y = stevilo / bankovec[i];
  if (y >= 1) {
    var razlika = Math.floor(y) * bankovec[i];
    stevilo = stevilo - razlika;
    stevilo_bankovcev = Math.floor(y) + stevilo_bankovcev;
    izpisi = izpisi + Math.floor(y) + "x" + bankovec[i] + ",";
    console.log(izpisi);
  }
}
window.onload = function() {
  document.getElementById("gremo").innerHTML = "Za plačilo je potrebno " + izpisi + " whereas the division's result is: " + total;
}
<span id="gremo"></span>

基本上只需调用另一个提示,将其保存到另一个变量中,然后用它进行除法。

谢谢,B


1
投票

你需要保留一些当地的状态,试试这个。

Codepen

  <span id="gremo"></span>
  <span id="avg"></span>
  <button id="add">add item</button>
var pastItemPrices = [];

function calcBills() {
    var stevilo = prompt("Vnesi znesek:");
    pastItemPrices.push(parseInt(stevilo));
    var bankovec = [500, 200, 100, 50, 20, 10, 5, 2, 1];
    var stevilo_bankovcev = 0;
    var izpisi = "";
    for (i = 0; i < bankovec.length; i++) {
        var y = stevilo / bankovec[i]; 
        if (y >= 1) {
        var razlika = Math.floor(y) * bankovec[i];
            stevilo = stevilo - razlika;
            stevilo_bankovcev = Math.floor(y) + stevilo_bankovcev;
            izpisi = izpisi + Math.floor(y) + "x" + bankovec[i] + ",";
        }
    }
    document.getElementById("gremo").innerHTML = "Za plačilo je potrebno " + izpisi;
    document.getElementById("avg").innerHTML = "Average price: " + pastItemPrices.reduce((total, price) => total + price) / pastItemPrices.length
}

window.onload = function() {
    document.getElementById("add").addEventListener("click", calcBills);
    calcBills();
}

0
投票

像这样吗?

function znesek() {
  var stevilo = prompt("Vnesi znesek:");
  const stevilo1 = stevilo; // take a copy
  var bankovec = [500, 200, 100, 50, 20, 10, 5, 2, 1];
  var stevilo_bankovcev = 0;
  var izpisi = "";
  for (i = 0; i < bankovec.length; i++) {
    var y = stevilo / bankovec[i];
    if (y >= 1) {
      var razlika = Math.floor(y) * bankovec[i];
      stevilo = stevilo - razlika;
      stevilo_bankovcev = Math.floor(y) + stevilo_bankovcev;
      izpisi = izpisi + Math.floor(y) + "x" + bankovec[i] + ",";
//      console.log(izpisi);
    }
  }
  document.getElementById("gremo").innerHTML = "Za plačilo je potrebno " + izpisi;
  setTimeout(function() { drugZnesek(stevilo1) } ,10); // allow DOM update
}
function drugZnesek(stevilo1) {
  var drugStevilo =  prompt("Vnesi drug znesek")
  if (stevilo1 && isNaN(stevilo1) || isNaN(drugStevilo)) {
    document.getElementById("gremo").innerHTML = "Žal ne številk";
    return;
  }
  else {
    console.log(stevilo1,drugStevilo,stevilo1/drugStevilo)
    document.getElementById("gremo").innerHTML += "<br/>"+(stevilo1/drugStevilo).toFixed(2)
  }
}  
window.addEventListener("load", znesek)
<span id="gremo"></span>
© www.soinside.com 2019 - 2024. All rights reserved.