evo resenja (nema ogranicenja kao rajkovo resenje a i jednostavnije je mnogo):
Code:
Public Function FormatNum(num As Double, Optional thSep As String = ".", Optional decSep As String = ",", Optional numAfterDec As Long = 2) As String
Dim sNum As String
Dim i As Long
sNum = StrReverse(CStr(Int(num)))
For i = 1 To Len(sNum) Step 3
sNum = Left(sNum, i + 2) & thSep & Right(sNum, Len(sNum) - i - 2)
i = i + 1
Next
If Len(sNum) Mod 4 = 0 Then sNum = Left(sNum, Len(sNum) - 1)
FormatNum = StrReverse(sNum) & decSep & Left(Mid(CStr(num - Int(num)), 3) & String(numAfterDec, "0"), numAfterDec)
End Function
formatirace broj nezavisno od podesavanja u regional settings (za razliku od VB-ove FormatNumber fje), karakteri koji se koriste kao separatori se prosledjuju funkciji (default su . za hiljade i , za decimalnu tacku) a moguce je i odrediti koliko brojeva posle decimale ce se prikazati (mada nema zaokruzivanja)
@rgdrajko: umesto da proveravas da li je broj ceo tako sto trazis "." sa
InStr bolje resenje je da koristis
If num - Int(num) > 0 Then (ako je razlika veca od nule onda je broj razlomljen, a ukolko je 0 onda je broj ceo) jer su operacije sa stringovima znatno sporije od operacija sa brojevima.
i rajko imam jednu molbu za tebe: jel mozes malo manje da koristis [
quote][
/quote] tagove u svojim postovima? vecina citata koje si ti naveo u ovoj temi su suvisni, ako je poruka na koju odgovaras iznad tvoje onda nema potrebe koristiti quote, i citirati celu poruku je sasvim bespotrebno, ukoliko se obracas autoru poruke (koju si hteo da citiras) koristi
@ImeAutora jer je tako tema mnogo laksa za citanje. ukoliko odgovaras na odredjeni deo necije poruke onda slobodno koristi quote (tako sto ces da navedes samo deo poruke na koji odgovaras)
hvala na razumevanju!
[Ovu poruku je menjao Aleksandar Ružičić dana 09.04.2008. u 17:17 GMT+1]