2015-11-28 22 views
5

Biến logincompare_user được lấy từ thông tin đăng nhập cung cấp cho chúng tôi vị trí mà người dùng nằm trong danh sách và số tiền tương ứng của họ sẽ ở cùng vị trí đó trong danh sách ahorros và monetaria. Tại sao trừ này không hoạt động?Javascript - Không thể trừ Ints sau khi chuyển đổi với ParseInt

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('[email protected] 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) 
 
     } 
 
    }

+0

tình trạng này sẽ không bao giờ thành sự thật 'transfer_1 === parseInt (transfer_1) ' –

Trả lời

1

Bạn đang thêm/trừ transfer biến để cta_ahorrocta_monetaria thay vì trans_int biến. transfer là một chuỗi, khi bạn cố thêm nó với biến số int nó đang gây ra sự cố. Tôi đã sửa chữa mã của bạn và đề cập dưới đây:

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('[email protected] 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('[email protected] a Transferencias, que desea hacer?\n' + 
      "1 - Ahorros a Monetaria\n" + 
      '2 - Monetaria a Ahorros\n' + 
      '0 - Log Out'); 
    } 
    } 
+0

Cảm ơn bạn, nhưng ngay bây giờ nó đang nói với tôi rằng tôi có 'Lỗi Cú pháp phù NaN: Parser Lỗi'. Tôi không có ý tưởng đó có nghĩa là gì –

+0

Bạn đang sử dụng mã của tôi như nó? hoặc nhúng mã vào mã trước của bạn? Nó có thể là một số vấn đề thêm brace}. –

+0

Tôi đã sử dụng các thay đổi bạn đã thực hiện trên mã của mình, tôi đã xóa khung phụ nhưng nó vẫn giữ nguyên, không bao giờ nhập vào phần thay đổi giá trị. –

0

Dòng dưới đây sẽ không bao giờ trở thành true như === sẽ kiểm tra cả loạigiá trị của transfer_1 và parseInt (transfer_1).

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

Bạn có thể làm như sau.

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; 
} 
Các vấn đề liên quan