|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jun 2003
Città: Milano Moto:Suzuki_GSR_k6
Messaggi: 3358
|
[VB6] Numeri decimali
Sapreste consigliarmi un metodo che mi consenta di capire se un numero ha due cifre decimali?
__________________
A8N-E.VENICE3200.ZALMAN7000B-ALCU.2x512 CORSAIRXPERT3200.GEFORCE-N6600LE.SAMSUNGSP2004C.NEC3540A.TAGAN480U22.CENTURION5 |
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
modulo 100 per vederne se ne ha di più, modulo 10 per vedere se ne ha più di una, > 0 per vedere se ne ha
prima però toglici il segno, altrimenti > 0 non funziona. |
|
|
|
|
|
#3 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
ehm, aspetta un momento, con "cifre decimali" intendevi dire cifre in base dieci o cifre dopo la virgola?
vedere se ha cifre dopo la virgola è difficile... ![]() devi confrontarlo con il suo troncamento, ma a volte la comparazione tra numeri uguali con la virgola senza cifre decimali può risultare falsa... come metodo un po' impreciso potresti usare una piccola tolleranza... |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Feb 2002
Messaggi: 906
|
Quote:
Dim numero, bx, cifra Dim sNum As String numero = 12.33 sNum = Trim(Str(numero)) lung = Len(sNum) bx = 0: For i = 1 To lung If Mid(sNum, i, 1) = "." Then bx = 1 Else If bx = 1 Then cifra = cifra + 1 End If Next i if cifra=2 then msgbox("ciao da okay") |
|
|
|
|
|
|
#5 | |
|
Member
Iscritto dal: Dec 2005
Messaggi: 44
|
Quote:
Ottimo mi funziona benissimo ho iniziato a studiare e ho scelto il classico vb da un pò che smanetto. Una domanda, ma per arrotondare per difetto o in eccesso c'è qualche funzione già pronta. |
|
|
|
|
|
|
#6 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
- prendi il suo arrotondamento per difetto (10) - prendi quello per eccesso (11) - moltiplica i due arrotondamenti e il numero stesso per 10 e convertili a interi (quindi ottieni 100, 105, 110) - controlla se il numero è compreso strettamente tra i due arrotondamenti (in questo caso lo è questo per vedere se ha almeno una cifra decimale; per vedere se ne ha almeno due fai lo stesso test moltiplicando per 100 anziché per 10; per vedere se ne ha esattamente 2 fai il test con 100 e quello con 1000: se il primo risulta vero e il secondo falso allora ne ha precisamente 2. Ultima modifica di 71104 : 29-12-2005 alle 21:58. |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Feb 2002
Messaggi: 906
|
Quote:
se per arrotondare per difetto usi INT Numero=123.45 a=INT(numero)---> A conterrà 123 Numero=-123.45 a=INT(numero)---> A conterrà -124 Allo stesso modo per arrotondare per eccesso: Numero=123.45 a=-INT(-numero)---> A conterrà 124 Numero=-123.45 a=-INT(-numero)---> A conterrà -123 ciao |
|
|
|
|
|
|
#8 | |
|
Member
Iscritto dal: Dec 2005
Messaggi: 44
|
Quote:
grazie okay magnifico quel - prima di INT e del numero non ne parla msdn e la sua guida. okay sei geniale ciao |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:34.




















