Jag skulle vilja "läsa in" hur många decimaler det finns i de värden jag hämtar upp för att sedan kunna avrunda på ett vettigt sätt. Hej Jovisst.. Men jag vet inte hur många decimaler talet som läsesin har, kan ibland vara heltal, ha en, två, tre eller fyra decimaler. Lägg en Command1 på en form och pejsta denna kod.. Bör hämta decimal separator. Annars kommer det bara fungera i med decimalseparator inställt på kommatecken: Jaha letade just efter ett sätt att veta vilket decimal-tecken som används.... Ditt problem verkar redan vara löst av andra. Men jag undrar varför du anser att vettig avrundning är att avrunda så att antalet decimaler minskar med ett? jo det är så här... Jag har värden som ska valideras mot max/min värde, max-värdet kan t.ex vara 1.2, värdet som ska kollas mot max kan vara 1.214(också gokännt) alltså ha fler decimaler än max-värdet, därför ville jag veta hur man kunde få tag på hur många decimaler det fanns i max för att kunna göra en riktig avrundad max/min checkHur kolla hur måmga decimaler??
Så hur tar man reda på hur många decimaler ett värde har.
Tack på förhandSv: Hur kolla hur måmga decimaler??
Läs om functionen Round(min double,n decimale)
Avrundar till det antal n decimaler du har i variablen
mvh
SvenSv: Hur kolla hur måmga decimaler??
Bara jag kan fånga hur många decimaler som finns kan jag använda "Round" för att avrunda.
Tal med fyra decimaler ska varundas till tre, tre till två, osv.
( kan vara att jag inte har förstått vad du menar också)
tack iallafall Sv: Hur kolla hur måmga decimaler??
Private Sub Command1_Click()
Dim tal As Double
Dim decimaler As Byte
tal = 3.1415926235 'PI med 10 decimaler
decimaler = (Len(CStr(tal)) - InStr(1, CStr(tal), ",", vbTextCompare))
Debug.Print decimaler
End Sub
eller den optimerade varianten
Private Sub Command1_Click()
Dim tal As String
Dim decimaler As Byte
tal = Cstr(3.1415926235) 'PI med 10 decimaler
decimaler = (Len(tal) - InStr(1, tal, ",", vbTextCompare))
Debug.Print decimaler
End Sub
/peterh (departement of computer science EK Järbo)Sv: Hur kolla hur måmga decimaler??
Kan hämtar decimalseparator med format() funktionen:
Format$(0,".")
Så en generell funktion borde se ut något så här(Retunerar 0 om inga decimaler förekommer):
Public Function GetDecimals(Value As Double) As Integer
Dim sTemp As String
Dim DecPos As Integer
sTemp = CStr(Value)
DecPos = InStr(1, sTemp, Format$(0, "."), vbBinaryCompare)
If DecPos > 0 Then
GetDecimals = (Len(sTemp) - DecPos)
End If
End FunctionSv: Hur kolla hur måmga decimaler??
/peterhSv: Hur kolla hur måmga decimaler??
Sv: Hur kolla hur måmga decimaler??
Allt är löst nu så jag tackar alla som lämnat bidrag.
orval