Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoc oko zaokruzivanja

[es] :: Access :: Pomoc oko zaokruzivanja

[ Pregleda: 3040 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

1900-ti
Beograd

Član broj: 52886
Poruke: 144
82.117.196.*



Profil

icon Pomoc oko zaokruzivanja10.04.2008. u 10:35 - pre 195 meseci
Cao svima

Napisao sam sledeci upit select round(jedan*dva, 2)
from table1

podaci koje mnozim su tipa number/double, ne mogu da dobijem rezultat koji je zakruzen na vecu vrednost, da li neko zna o cemu se radi, dobijam broj 380, a rezultat je 374.3 npr
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2831



+45 Profil

icon Re: Pomoc oko zaokruzivanja10.04.2008. u 14:14 - pre 195 meseci
Možda je problem u separatoru decimalnog i celog broja. Okači primer.
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Pomoc oko zaokruzivanja10.04.2008. u 14:44 - pre 195 meseci
Evo tri funkcije koje vrse generalno zaokruzivanje, na bilo koju vrednost, ne samo na odredjen broj decimala.

Korisne su ako na primer obracunavate sate, pa zelite da napalite svakih zapocetih 15 minuta (0.25 od sata), kako rade advokati.

Mozete da zaokruzite i na nalblizih 5 metara, ali i na prvih nizih 5 m, ili prvih visih 5 m. Ili da zaokruzujete na colove, na svakih 2.54 cm.

Mislim da sam negde na forumu vec pominjao ove funkcije, ali ih nisam mogao naci u Bazi Znanja, pa sam ih dodao i tamo.

:-)

Evo funkcija:

Code:

Public Function Round_Z(X As Variant, U As Variant) As Variant
'Namena: zaokruzuje brojeve na bilo koju jedinicu mere
'jedinica mere moze biti decimalna ali i 'najblizih 2 cm', najblizih 15 minuta,
'bilo sta
'Iz ove funkcije izvode se i druge dve RoundUp_Z i RoundDown_Z, koje
'zaokruzju na prvu vecu ili manju okruglu vrednost jedinice mere
'Primeri:
'Zaokruzi na jednu decimalu:
'Print Round_Z(0.12345, 0.1)
' 0.1
'Zaokruzi na 3 decimale:
'Print Round_Z(0.12355, 0.001)
' 0.124
'Zaokruzi an 5 decimala:
'Print Round_Z(0.12355, 0.00001)
' 0.12355
'Zaokruzi na ceo broj
'Print Round_Z(12355.6355, 1)
'12356
'Zaokruzi na najblizi paran broj (2)
'Print Round_Z(12355.12355, 2)
'12356
'Zaokruzi na najblizi broj deljiv sa 3:
'Print Round_Z(12355.12355, 3)
'12354
'Na najblizu stotinu:
'Print Round_Z(12355.12355, 100)
'12400
'Na najblizih 0.25:
'Print Round_Z(12355.12355, 0.25)
'12355
'Print Round_Z(12355.26355, 0.25)
' 12355.25

Round_Z = Int((X + U / 2) / U) * U


End Function

Function RoundUp_Z(X As Variant, U As Variant) As Variant
'Zaokruzuje zadati broj X na prvi umnozak od U koji je veci od X
'Primeri:
'Zaokruzi na prvi veci broj deljiv sa 5
'? RoundUp_Z(12.015,5)
'15
'
RoundUp_Z = Round_Z(X + U / 2, U)
End Function

Function RoundDown_Z(X As Variant, U As Variant) As Variant
'Zaokruzuje zadati broj X na prvu manju jedinicu U
'Primeri:
'Zaokruzi na prvi manji broj deljiv sa 5
'Print RoundDown_Z(37, 5)
'35
RoundDown_Z = Round_Z(X - U / 2, U)
End Function

 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2831



+45 Profil

icon Re: Pomoc oko zaokruzivanja10.04.2008. u 14:56 - pre 195 meseci
Zidar, ovo je dobra funkcija ali ja verujem da on ima neku banalnu grešku, tim pre što kod mene njegov napisani SQL izraz radi sa tipom podatka Numeric, Double. FunkcijaRound() korektno zaokružuje na više i naniže, tačno na onoliko decimala koliko se navede kao deo argumenta.
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Pomoc oko zaokruzivanja10.04.2008. u 16:36 - pre 195 meseci
Potpuno si u pravu. Greska je verovatno tip podataka koji je poslat funkciji ROUND. Ako se posalje int verovatno ce da vrati int. Mozda treba

ROUND(1.0*jedan*dva, 2)

Da priznam, nisam ni obratio paznju na postavljeno pitanje. Samo me je podsetilo da ima i drugacija funkcija za zaokruzivanje pa sam je ubacio.





 
Odgovor na temu

[es] :: Access :: Pomoc oko zaokruzivanja

[ Pregleda: 3040 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.