Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    55

    [VB] Arrotondamento dell'Euro... qualche dubbio

    Ciao a tutti...

    so che ormai è passato del tempo da quando esiste l'euro, ma mi sono imbattuto or ora in un problema che mi ha lasciato un attimo lì, e che non riguarda strettamente il linguaggio di programmazione.

    Dunque, che sappia io, l'euro ha 2 cifre decimali, che vengono arrotondate a seconda se dalla terza in poi il numero è < di 0.005 oppure =>.

    In VB esiste la funzione Round(numero,2). Ma non fa la stessa cosa.

    Se io ho 12,3458 ----> 12,35. OK
    Se io ho 12,3448 ----> 12,34. OK

    Ma se io ho 12,345 ----> il risultato GIUSTO dovrebbe essere 12,35, ma la funzione Round ritorna 12,34.

    E questo che sappia io è un errore contabile. Se faccio un programma di gestione aziendale con questa funzione, faccio pagare fior di milioni di multe...

    Chi ha avuto esperienza a riguardo?
    anche con altri linguaggi, naturalmente...

  2. #2
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877
    Leggi questo:
    http://forum.html.it/forum/showthrea...hreadid=275259

    Questo è la round che ho fatto x risolvere il problema...
    Il codice è in VB.NET, ma credo sia facilmente adattabile a VB 6

    codice:
        Public Shared Function Round(ByVal number As Single, Optional ByVal decimalPosition As Byte = 0) As Single
            Dim n As Double
            Dim p As Double = System.Math.Pow(10, decimalPosition)
            n = number * p
            n += IIf(number < 0, -0.5, 0.5)
            n = Int(n)
            n /= p
            Return n
        End Function
    HTH
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

  3. #3
    Utente di HTML.it L'avatar di Mychy
    Registrato dal
    Oct 2000
    Messaggi
    794
    L'arrotondamento se non erro dovrebbe essere automatico.

    Dim prezzo as currency
    prezzo=10,456
    prezzo=format(prezzo,"€#,##0.00")
    txt1.text=prezzo

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.