Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Vi è mai capitato??

  1. #1

    Variabili numeriche ma sommate come stringhe

    Ciao a tutti,
    dopo anni, ieri ,mi è capitata una cosa strana....
    Devo sommare due variabili; una presa da database, cou un residuo del credito di un utente, l' altra proviene da una querystring.
    nel primo caso il campo e di tipo decimal in formato 20.00, nel secondo il numero è per es. 120.00.
    Imposto questi due valori a due variabili
    <%
    var1= rs.Fields.Item("residuo").value ' 20.00
    var2=Request.QueryString("valore") ' 120.00

    facendo un controllo se le variabili sono numeriche
    if IsNumeric(var1) then
    response.write "true"
    end if
    %>
    Per entrambe da true, quindi sono due variabili numeriche.
    Ora devo sommarle
    <%
    totale= var1+var2
    %>
    sapete cosa mi da per totale?? "20.00120.00" le somma come stringhe.
    Ma come è possibile se le intercetta come numeriche??


    Ho provato in mille maniere, facendo fare il replace del punto con la virgola (per scrupolo non x necessità), dando un formato numerico alle due variabili ma niente.

    Ho notato che se singolarmente aggiungo un nomero,la somma la faceva correttamente:
    <%
    var1=var1+1
    %>
    Risultato 21.00
    <%
    var2=var2+1
    %>
    Risultato 121.00
    Allora ho provato una gamola.... bruttissima ma risolve il mio problema
    <%
    var1=var1+1
    var2=var2+1
    totale=(var1 + var2) -2
    %>
    ora totale è = a 140!!!!

    Ora volevo chiedere a qualcuno, che magari ne sa + di me, come è possibile una cosa del genere?? e da cosa è dovuto??? Ripeto le var originali le da fin da subito come NUMERICHE, ma non le somma correttamente.
    A voi il rompicapo.
    Th!
    http://www.thantalas.net

  2. #2
    standing ovation per il titolo del 3d

  3. #3
    Così dovrebbe andare:
    codice:
    var1 = replace(var1, ".", ",")
    var2 = replace(var2, ".", ",")
    totale = Cdbl(var1) + Cdbl(var2)
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  4. #4
    Il replace l' ho provato ..ma nn gliene frega nulla...

    non è l'unico posto dove devo fare operazioni simili, ma solo in questa funzione mi si impalla nn capisco il perchè, una cosa identica , ma da un pannello di controllo riservato,
    dove l' importo della querystring proviene da un form con metodo post funziona alla perfezione senza dover convertire niente, e controllando il formato dei dati è IDENTICO... ma funziona. sigh

    Cdbl Non l' ho provato ad essere sinceri nn l' ho mai usato.. ho guardato sui riferimanti asp mo nn lo trovo cosa converte??
    th!
    http://www.thantalas.net

  5. #5
    A me restituisce correttamente la somma di due importi numerici.
    Prova no?
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  6. #6
    Già provato e funziona correttamente..
    grazie.
    Ma il problema non era risolverlo,in quanto lo avevo già fatto, ma riuscire a capire il xchè del comportamento. Vorrei solo capire.
    Comunqu grazie per l' aiuto, ora è tutto più pulito e funzionale.


    ...
    standing ovation per il titolo del 3d
    l' ho cambiato ... così va meglio????
    scusa ma alla mattina nn faccio molto caso alla "forma dei titoli dei post".
    Th!
    http://www.thantalas.net

  7. #7
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Request.QueryString restituisce sempre un valore string
    IsNumeric ti restituisce true perchè asp non è un linguaggio tipizzato. Questa funzione si dovrebbe chiamare IsConveribileInNumerico

    E quindi,questo è un uso corretto di IsNumeric
    codice:
    Var1 = "120"
    If IsNumeric(Var1) then Var1=cInt(Var1)

  8. #8
    Non posso converitre in intero, il valore è una valuta e quindi decimale, potrei avere 120.35 come importo...
    Th!
    http://www.thantalas.net

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.