Javascript-Can't使用ParseInt转换后减去Ints

Javascript - Can't subtract Ints after converting with ParseInt

本文关键字:转换 Ints ParseInt 使用 Javascript-Can      更新时间:2023-09-26

变量logincompare_user取自login,它为我们提供了用户在列表中的位置,他们相应的钱将在aherrors和monetaria列表中的相同位置。为什么这个减法不起作用?

var ahorros = [5000,6000,10000];
var monetaria = [2000,15000,1000];
var registro = [];
function transferencias(ahorros ,monetaria,registro,logincompare_user){
    var cta_ahorro = ahorros[logincompare_user];
    var cta_monetaria = monetaria[logincompare_user];
    registro.push("Entrada a Transferencias " + Math.floor(Date.now()/1000) + ''n');
    var eleccion_cta = prompt('Bienvenid@ a Transferencias, que desea hacer?'n'+
                              "1 - Ahorros a Monetaria'n"+
                              '2 - Monetaria a Ahorros'n'+
                              '0 - Log Out');
    while (eleccion_cta >= 0 && eleccion_cta <= 2){
        if (eleccion_cta == 1){
            var transfer = prompt("Cuanto desea transferir?",0);
            var trans_int = parseInt(transfer,0);
            if (trans_int <= cta_ahorro){
                cta_ahorro = cta_ahorro - transfer;
                cta_monetaria = cta_monetaria + transfer;
            }
            else{
                alert("Error");
                transferencias(ahorros,monetaria,registro,logincompare_user);
            }
        }
        else if (eleccion_cta == 2){
            var transfer_1 = prompt("Cuanto desea transferir?");
            if (transfer_1 <= cta_monetaria && transfer_1 === parseInt(transfer_1)){
                cta_ahorro = cta_ahorro + transfer_1;
                cta_monetaria = cta_monetaria - transfer_1;
            }
            else{
                alert("Ingrese un numero por favor");
                transferencias(ahorros,monetaria,registro,logincompare_user);
            }
        }
        else if (eleccion_cta == 0){
            log_out(logincompare_user,registro,ahorros,monetaria)
        }
        else{
            alert("Opcion Invalida");
            transferencias(ahorros,monetaria, registro,logincompare_user)
        }
    }

您正在将transfer变量添加/减去cta_ahorrocta_monetaria,而不是trans_int变量。transfer是一个字符串,当您尝试将其添加到int变量时,会导致问题。我已经更正了您的代码,并在下面提到:

var ahorros = [5000,6000,10000];
var monetaria = [2000,15000,1000];
var registro = [];
    function transferencias(ahorros, monetaria, registro, logincompare_user) {
    var cta_ahorro = ahorros[logincompare_user];
    var cta_monetaria = monetaria[logincompare_user];
    console.log(cta_ahorro); // Printing for confirmation 
    console.log(cta_monetaria); // Printing for confirmation 
    registro.push("Entrada a Transferencias " + Math.floor(Date.now() / 1000) + ''n');
    var eleccion_cta = prompt('Bienvenid@ a Transferencias, que desea hacer?'n' +
            "1 - Ahorros a Monetaria'n" +
            '2 - Monetaria a Ahorros'n' +
            '0 - Log Out');
    while (eleccion_cta >= 0 && eleccion_cta <= 2) {
      if (eleccion_cta == 1) {
        var transfer = prompt("Cuanto desea transferir?", 0);
        var trans_int = parseInt(transfer, 0);
        if (trans_int <= cta_ahorro) {
          cta_ahorro = cta_ahorro - trans_int; // Here is change 
          cta_monetaria = cta_monetaria + trans_int; // Here is change 
          console.log(cta_ahorro); // Printing for confirmation 
          console.log(cta_monetaria); // Printing for confirmation 
        }
        else {
          alert("Error");
          transferencias(ahorros, monetaria, registro, logincompare_user);
        }
      }
      else if (eleccion_cta == 2) {
        var transfer = prompt("Cuanto desea transferir?");
        var trans_int = parseInt(transfer, 0);
        if (trans_int <= cta_monetaria) {
          cta_ahorro = cta_ahorro + trans_int; // Here is change 
          cta_monetaria = cta_monetaria - trans_int; // Here is change 
          console.log(cta_ahorro); // Printing for confirmation 
          console.log(cta_monetaria); // Printing for confirmation 
        }
        else {
          alert("Ingrese un numero por favor");
          transferencias(ahorros, monetaria, registro, logincompare_user);
        }
      }
      else if (eleccion_cta == 0) {
        log_out(ahorros, monetaria, registro, logincompare_user)
      }
      else {
        alert("Opcion Invalida");
        transferencias(ahorros, monetaria, registro, logincompare_user)
      }
      var eleccion_cta = prompt('Bienvenid@ a Transferencias, que desea hacer?'n' +
            "1 - Ahorros a Monetaria'n" +
            '2 - Monetaria a Ahorros'n' +
            '0 - Log Out');
    }
  }

由于===将检查transfer_1和parseInt(transfer_1)的类型,所以下面的行永远不会变成true

if (transfer_1 <= cta_monetaria && transfer_1 === parseInt(transfer_1))

您可以执行以下操作。

 var transfer_1 = prompt("Cuanto desea transferir?");
 transfer_1 = parseInt(transfer_1);
 if (transfer_1 != undefined && transfer_1 <= cta_monetaria) {
     cta_ahorro = cta_ahorro + transfer_1;
     cta_monetaria = cta_monetaria - transfer_1;
 }