Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Numeri con la virgola
Forum - Visual Basic 6 - Numeri con la virgola

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
HackerV88 (Member)
Pro


Messaggi: 88
Iscritto: 29/09/2008

Segnala al moderatore
Postato alle 14:53
Venerdì, 10/10/2008
Salve,
nel mio programma ho una variabile che si chiama "dopovirgola", e contiene il numero di cifre che devono essere visualizzate dopo la virgola di un numero float:
Es: 1) dopovirgola=3   ->    3545,059
    2) dopovirgola=5   ->    4,00591
Bene, adesso come faccio a stampare in una text box questa formattazione?
Perhcè in C si fa cosi  %f5.2, ma in vb6 non so proprio come fare.

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 15:35
Venerdì, 10/10/2008
Ho appena creato una funzione apposita:
Codice sorgente - presumibilmente VB.NET

  1. Private Function DV(NumeroIniziale As Double, dopovirgola As Integer) As Double
  2. Dim operazioni As String, i As Integer, tmp() As String
  3. i = InStr(1, CStr(NumeroIniziale), ",")
  4. If dopovirgola <= Len(NumeroIniziale) Then
  5. If i > 0 Then
  6. tmp = Split(CStr(NumeroIniziale), ",")
  7. operazioni = tmp(0) & "." & Left(tmp(1), Len(tmp(1)) - dopovirgola)
  8. DV = Val(operazioni)
  9. Else
  10. MsgBox "Questo non è un numero decimale!", vbCritical, "Error Function DV"
  11. Exit Function
  12. End If
  13. Else
  14. MsgBox "I numeri dopo la virgola sono minori dei numeri da togliere!", vbCritical, "Error Function DV"
  15. Exit Function
  16. End If
  17. End Function



Fammi sapere se ci sono problemi

p.s. Aggiornata la funzione perchè mi ero accorto di un bug.

Ultima modifica effettuata da GrG il 07/11/2008 alle 14:07
PM Quote
Avatar
HackerV88 (Member)
Pro


Messaggi: 88
Iscritto: 29/09/2008

Segnala al moderatore
Postato alle 17:28
Venerdì, 10/10/2008
Ho fatto questo codice con la tua funzione:
Private Sub Form_Load()
Dim num1 As Double
Dim n As Integer
Dim ris As Double

num1 = 15.4445
n = 2
ris = DV(num1, n)
MsgBox ris

End Sub

Private Function DV(NumeroIniziale As Double, dopovirgola As Integer) As Double
Dim operazioni As String, i As Integer, tmp() As String
i = InStr(1, CStr(NumeroIniziale), ",")
If dopovirgola <= NumeroIniziale Then
If i > 0 Then
tmp = Split(CStr(NumeroIniziale), ",")
operazioni = tmp(0) & "." & Left(tmp(1), Len(tmp(1)) - dopovirgola)
DV = Val(operazioni)
Else
MsgBox "Questo non è un numero decimale!", vbCritical, "Error Function DV"
Exit Function
End If
Else
MsgBox "I numeri dopo la virgola sono minori dei numeri da togliere!", vbCritical, "Error Function DV"
Exit Function
End If
End Function

Ma mi dice sempre che il mio numero non è decimale

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 17:40
Venerdì, 10/10/2008
sicuro?

ho fatto copia e incolla in un nuovo progetto e funziona!

PM Quote
Avatar
HackerV88 (Member)
Pro


Messaggi: 88
Iscritto: 29/09/2008

Segnala al moderatore
Postato alle 17:58
Venerdì, 10/10/2008
sicuro

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 18:12
Venerdì, 10/10/2008
comprimi in uno zip i sorgenti e allegali, non riesco a crederci lol a me funziona perfettamente...

PM Quote
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 23:04
Lunedì, 13/10/2008
non e` che per caso centra la lingua di sistema che scambia punti con virgole?

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 19:08
Martedì, 14/10/2008
può darsi...

PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 22:57
Martedì, 14/10/2008
Testo quotato

Postato originariamente da HackerV88:

Salve,
nel mio programma ho una variabile che si chiama "dopovirgola", e contiene il numero di cifre che devono essere visualizzate dopo la virgola di un numero float:
Es: 1) dopovirgola=3   ->    3545,059
    2) dopovirgola=5   ->    4,00591
Bene, adesso come faccio a stampare in una text box questa formattazione?
Perhcè in C si fa cosi  %f5.2, ma in vb6 non so proprio come fare.



hai provato gia con la funzione round
var=round(num,cifre_decimali)
3,78=round(3.786528394,2)

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo