Newsgroup: it.comp.lang.visual-basic
Titolo: arrotondare file size

Salve, 
In Realbasic la funzione che mi ritorna il file size di un file mi da: 
1.287824e+6 
Qualche suggerimento su come trasformarlo in numero con massimo di due 
cifre dopo la virgola e la dicitura "Mb"? 
una cosa tipo 1.28Mb 
La funzione dovrebbe essere dinamica naturalmente, Kb Mb Tb 
Grazie a chi mi aiuterą!

 Grazie a chi mi aiuterà!
Se non erro il numero restituito dalla funzione che dici
restituisce i BIT non i BYTE.
Le cose nonostante siano legate sono separate da una corrispondenza
non 1:1 ma 1024:1
Pertanto devi armarti di pazienza ed eseguire l'operazione
di conversione.
Saluti
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Larry:
  non so' se possono esserti utili, ma ti allego due routines
che, taaaanto tempo fa', ho scritto per la formattazione
in virgola mobile ingegneristica (i.e. con esponente multiplo
di tre) e per quella con mantissa e prefisso.
Usando, e.g., il seguente codice:
     Dim Mantissa$, Prefisso$
'
     FormatPrf 123456.7, Mantissa$, Prefisso$, "0.00E+00"
     Label1.Caption = Mantissa$ & " " & Prefisso$ & "Hz"
ti dovresti trovare, in Label1, "123.46 kHz".
Ciao ed a risentirci.
Franco
--------------------------------------------------------------------------------
Public Sub FormatPrf(ByVal vNum As Variant, ByRef Mantissa$, ByRef 
Prefisso$, _
     Optional ByVal strF$ = "0.000E+00")
'
'   Trasforma il valore vNum in formato SI con mantissa e prefisso,
'   i.e. micro (ต), milli (m), ..., kilo (k), etc... conservando il
'   numero di cifre della mantissa di strF$.
'   La mantissa di strF$ deve sempre avere almeno uno 0 prima e dopo
'   il punto decimale; strF$ deve essere in formato scientifico, i.e.
'   contenere i caratteri "E+0[0[0]]".
'
'   Nota: accertarsi che il Font usato per scrivere il Prefisso$
'         contenga il carattere "ต".
'
     Dim FTemp$, EPos&
'
     FTemp$ = FormatE$(vNum, strF$)
'
     EPos = InStr(FTemp$, "E")
'
     Mantissa$ = Left$(FTemp$, EPos - 1)
'
     Select Case Val(Mid$(FTemp$, EPos + 1))
     Case -18
         Prefisso$ = "a" ' (atto).
     Case -15
         Prefisso$ = "f" ' (femto).
     Case -12
         Prefisso$ = "p" ' (pico).
     Case -9
         Prefisso$ = "n" ' (nano).
     Case -6
         Prefisso$ = "ต" ' (micro).
     Case -3
         Prefisso$ = "m" ' (milli).
     Case 0
         Prefisso$ = ""
     Case 3
         Prefisso$ = "k" ' (kilo).
     Case 6
         Prefisso$ = "M" ' (mega).
     Case 9
         Prefisso$ = "G" ' (giga).
     Case 12
         Prefisso$ = "T" ' (tera).
     Case 15
         Prefisso$ = "P" ' (peta).
     Case 18
         Prefisso$ = "E" ' (eka).
'
     Case Else
         Prefisso$ = "?" ' non lo so' :-)).
     End Select
'
'
'
End Sub
Public Function FormatE$(ByVal vNum As Variant, Optional ByVal strF$ = 
"0.0#####E-00")
'
'   Ritorna il valore vNum in formato scientifico
'   ingegneristico (i.e. con esponente multiplo di 3):
'
     Dim FTemp$, MEsp&
'
     strF$ = UCase$(strF$)
     If Left$(strF$, 1) = "+" Or Left$(strF$, 1) = "-" Then
         strF$ = Mid$(strF$, 2)
     End If
'
     FTemp$ = Format$(vNum, strF$)
     MEsp = Val(Mid$(FTemp$, InStr(FTemp$, "E") + 1)) Mod 3
'
     If MEsp > 0 Then
         strF$ = String(MEsp, "#") & strF$
     ElseIf MEsp < 0 Then
         strF$ = String(3 - Abs(MEsp), "#") & strF$
     End If
'
     FormatE$ = Format$(vNum, strF$)
'
'
'
End Function
Web: 
http://www.flanguasco.org

     End Select
Verso l'infinito e oltre
Riccardo