Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464

    Risultato moltiplicazione diversa in base al borwser

    Salve, qualcuno mi sa dire perche cambia il risultato di una moltoplicazione in base al browser?

    Devo convertire un prezzo in valuta straniera.

    Leggo il cambio dal db mysql e se faccio il replace del punto con la virgola come di seguito in qualche browser mi esce il risultato esatto ed altri no, se viceversa non faccio il replace e quindi lascio il punto in quelli in cui prima usciva sbagliato esce corretto e viceversa...

    cambioprezzo = RSvaluta("rate"), ".",",")


    Questi i 2 risultati

    SBAGLIATO
    CNY 95382300,00 + IVA
    CNY 36685500,00 + IVA

    CORRETTO
    CNY 9538,23 + IVA
    CNY 3668,55 + IVA

    ho provato anche a convertire in numero ma qualsiasi cosa faccia � strano che in un browser esce in un modo e nell'altro esce diversamente...
    Grqazie

    PS. il tutto viene complicato dalla seguente funzione:

    Function VisualizzaPrezzo(VisualizzaPrezzo_StringaPrezzo)
    VisualizzaPrezzo_StringaPrezzo = Int(VisualizzaPrezzo_StringaPrezzo)
    Do While LEN(VisualizzaPrezzo_StringaPrezzo) < 3
    VisualizzaPrezzo_StringaPrezzo = "0" & VisualizzaPrezzo_StringaPrezzo
    Loop
    Dim VisualizzaPrezzo_StringaDecimale, VisualizzaPrezzo_StringaIntero
    VisualizzaPrezzo_StringaDecimale = Mid(VisualizzaPrezzo_StringaPrezzo, LEN(VisualizzaPrezzo_StringaPrezzo) - 1, 2)
    VisualizzaPrezzo_StringaIntero = Mid(VisualizzaPrezzo_StringaPrezzo, 1, LEN(VisualizzaPrezzo_StringaPrezzo) - 2)
    VisualizzaPrezzo = VisualizzaPrezzo_StringaIntero & "," & VisualizzaPrezzo_StringaDecimale
    End Function
    Ultima modifica di Partisan75; 09-05-2017 a 11:55

  2. #2
    sul db il numero è in formato numerico o stringa?

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464
    Quote Originariamente inviata da optime Visualizza il messaggio
    sul db il numero è in formato numerico o stringa?
    Ciao grazie per la risposta,
    adesso è varchar(12) ma ho provato anche a cambiare in Float, Decimal ecc ecc
    Ho provato anche a convertire prima con Cint o Clng, con il primo mi dava errore perche forse troppo lungo e con il secondo non mi risolveva il problema...

  4. #4
    innanzitutto fallo diventare numero sul db! memorizzare un numero in una varchar ti porta inevitabilmente al disastro poi, appena lo leggi da db, trasformalo esplicitamente in numero (CSng o CDbl)

    CInt e CLng ***NON*** possono funzionare. scopri da solo perché

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464
    Sembra che funzioni, speriamo bene
    Grazie mille

  6. #6

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464
    Incredibile, l'errore è tornato senza che cambiassi nulla...
    Sto impazzendo su questa cosa che apparentemente sembra la piu semplice del mondo!

    Il campo nel mysql è formato "float" nella pagina richiamo così il valore da calcolare:

    codice HTML:
        <%
            valutasession = Session("moneta")
            Dim SQLvaluta, RSvaluta, valutasession
            If valutasession > 0 Then
            set RSvaluta = Server.CreateObject("ADODB.Recordset")
            SQLvaluta = " SELECT * FROM cambio WHERE ID = " & valutasession
            Set RSvaluta = Conn.Execute(SQLvaluta)
            cambioprezzo = CSng(Replace(RSvaluta("rate"), ".",","))
            end if
        %>

    e questa è l'operazione...

    codice HTML:
    <%=VisualizzaPrezzo((CPrezzo)*cambioprezzo)%>

    e questa la funzione VisualizzaPrezzo ma non credo posso centrare niente....

    codice HTML:
    Function VisualizzaPrezzo(VisualizzaPrezzo_StringaPrezzo)
            VisualizzaPrezzo_StringaPrezzo = Int(VisualizzaPrezzo_StringaPrezzo)
            Do While LEN(VisualizzaPrezzo_StringaPrezzo) < 3
                VisualizzaPrezzo_StringaPrezzo = "0" & VisualizzaPrezzo_StringaPrezzo
            Loop
            Dim VisualizzaPrezzo_StringaDecimale, VisualizzaPrezzo_StringaIntero
            VisualizzaPrezzo_StringaDecimale = Mid(VisualizzaPrezzo_StringaPrezzo, LEN(VisualizzaPrezzo_StringaPrezzo) - 1, 2)
            VisualizzaPrezzo_StringaIntero = Mid(VisualizzaPrezzo_StringaPrezzo, 1, LEN(VisualizzaPrezzo_StringaPrezzo) - 2)
            VisualizzaPrezzo = VisualizzaPrezzo_StringaIntero & "," & VisualizzaPrezzo_StringaDecimale
        End Function

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 © 2024 vBulletin Solutions, Inc. All rights reserved.