ciao ragazzi,
ho trovato questo script su questo sito, per l'arrotondamento dell'euro secondo la normativa CEE
questo mi servirebbe visto che sto facendo un sistema di fatturazione e con i vari coalcoli dell'iva mi da poi degli importi tipo 195.5689....
ai fini di fare le cose bene per il mio commercialista, dovrei arrotondare a 195.57.
l'ho preso, l'ho inserito in una pagina asp ma da degli errori......
qualcuno mi può dare una mano?
o se conoscete qualche script che faccia a caso mio?
grazie a tutti
Giovanni
lo script è questo:
Public Function dblEuro2Dec(dblCifra As Double) As Double
Dim strNumero As String, strIntero As String, sDecimali As String
Dim sChar as String * 1
Dim iPosVirg As Integer, iCnt As Integer
Dim dblNumElab As Double
' trasforma il numero in stringa
strNumero = CStr(dblCifra)
' rileva la parte intera del numero
strIntero = CStr(Int(dblCifra))
' SE il separatore decimale è "." lo converto in ","
' per compatibilità con tutte le impostazioni internazionali
strNumero = Replace(strNumero, ".", ",")
' rileva la posizione della virgola
iPosVirg = InStr(strNumero, ",")
' SE non ci sono decimali
If (iPosVirg = 0) Then
dblEuro2Dec = dblCifra
Exit Function
End If
' rileva la parte decimale del numero
sDecimali = Mid(strNumero, iPosVirg + 1, Len(strNumero) - iPosVirg)
Select Case Len(sDecimali)
Case Is = 2
dblEuro2Dec = dblCifra
Exit Function
Case Is > 6
' tronca a 6 il numeri di decimali
sDecimali = Left(sDecimali, 6)
End Select
' il numero da elaborare è la variabile "dblNumElab",
' cui assegnamo il valore: 0,nnnnn
dblNumElab = Val("0." & sDecimali)
' esegue la funzione di arrotondamento iniziando dal decimale in coda
' fino all'ultimo arrotondabile, che è il secondo
For iCnt = Len(sDecimali) To 3 Step -1
iPosVirg = InStr(dblNumElab, ",")
sDecimali = Mid(dblNumElab, iPosVirg + 1, Len(dblNumElab) - iPosVirg)
If (Len(sDecimali) < 3) Then Exit For
sChar = Mid(sDecimali, iCnt, 1)
sDecimali = Left(sDecimali, Len(sDecimali) - 1)
dblNumElab = Val("0." & sDecimali)
If (Val(sChar) > 4) Then
dblNumElab = dblNumElab + (1 / 10 ^ (iCnt - 1))
End If
Next iCnt
' assegna alla funzione il numero arrotonadato
dblEuro2Dec = Val(strIntero) + dblNumElab
End Function