Come posso ottenere in ASP il valore di una approssimazione per difetto?
Grazie mille!
![]()
Come posso ottenere in ASP il valore di una approssimazione per difetto?
Grazie mille!
![]()
Quoque tu Bruto fijo de 'na mignotta?
A che decimali?
Scusate i puntini di sospensione...... La verità è che non ho argomenti....
piace?codice:<% numero = "47,58296" function approssima(byval numero,tipo,decimali) dim intero, decimale if instr(numero,",") <> 0 then select case tipo case "difetto" intero = left(numero,instr(numero,",")-1) decimale = left(mid(numero,instr(numero,",")+1,decimali) & string(decimali,"0"),decimali) numero = cdbl(intero & "," & decimale) case "eccesso" intero = left(numero,instr(numero,",")-1) decimale = left(mid(numero,instr(numero,",")+1,decimali+1) & string(decimali,"0"),decimali+1) if not(right(decimale,1) = 0) then decimale = cdbl(decimale) + cdbl((10-right(decimale,1))) decimale = cstr(decimale) decimale = left(decimale,len(decimale)-1) numero = cdbl(intero & "," & decimale) case "auto" numero = formatnumber(numero,decimali) end select approssima = cdbl(numero) else approssima = numero end if end function 'AUTO = cifra di approssimazione >= 5 eccesso ' cifra di approssimazione < 5 difetto 'ECCESSO = approssima sempre per eccesso (escluso 0) 'DIFETTO = approssima sempre per difetto response.write approssima(numero,"difetto",2) %>
piccola modifica proposta da kluster
thankscodice:<% numero = "47,58296" function approssima(byval numero,tipo,decimali) dim intero, decimale numero = replace(cstr(numero),".",",") if instr(numero,",") <> 0 then select case tipo case "difetto" intero = left(numero,instr(numero,",")-1) decimale = left(mid(numero,instr(numero,",")+1,decimali) & string(decimali,"0"),decimali) numero = cdbl(intero & "," & decimale) case "eccesso" intero = left(numero,instr(numero,",")-1) decimale = left(mid(numero,instr(numero,",")+1,decimali+1) & string(decimali,"0"),decimali+1) if not(right(decimale,1) = 0) then decimale = cdbl(decimale) + cdbl((10-right(decimale,1))) decimale = cstr(decimale) decimale = left(decimale,len(decimale)-1) numero = cdbl(intero & "," & decimale) case "auto" numero = formatnumber(numero,decimali) end select approssima = cdbl(numero) else approssima = numero end if end function 'AUTO = cifra di approssimazione >= 5 eccesso ' cifra di approssimazione < 5 difetto 'ECCESSO = approssima sempre per eccesso (escluso 0) 'DIFETTO = approssima sempre per difetto response.write approssima(numero,"difetto",2) %>
grazie!
ora ci provo!
certo che è un bordello però!
![]()
Quoque tu Bruto fijo de 'na mignotta?
Non è detto che non possa esserti sufficiente la round()
Roby
www.creamweb.it [v. 3.0]
:: Script ASP!
:: Web directory gratuita!
:: Campioni del mondo!
Round fa l'arrotonadmento comune,
se la vuole sempre per diffetto piuttosto fix(numero) o int(numero), dipende come si vuole arrotondare -3,5 (a -3 o a -4?)
Cmq questo codice può essere utile x scegliere quella giusta
codice:<% arrnumber=split("-8.44;-8.50;-8.54;8.44;8.50;8.54",";") arrfunction=split("fix(num);int(num);abs(num);round(num);round(num,1);cint(num);clng(num);formatnumber(num,0);formatnumber(num,1)",";") for icount1=0 to ubound(arrfunction) for icount2=0 to ubound(arrnumber) scode=replace(arrfunction(icount1),"(num","("&arrnumber(icount2)) execute("result="&scode) response.write scode&" = "&result&" " next response.write "<hr>" next %>
stupendo
grazie per il chiarimento
io come al solito a volte vado a cercarmi le vie più folli
cmq per la richiesta credo sia perfetto il
FIX()
ciao![]()