KIEDY S-5. KIEDY POWSTANIE OBWODNICA RAWICZA?.

Mam pytanie:

dlaczego Access inaczej zaokrągla liczby a inaczej waluty
sprawdzałem to i przy zaokrągleniu do dwóch miejsc po przecinku
liczba 0,005 to 0,00  (0,006 to 0,01) a
waluta 0,005 to 0,01 (0,006 to 0,01)
czy da się ustawić gdzieś parametr zaokrąglania liczb dla formatów

wydaje mi się że może to powodować błędy przy przeliczaniu np.
wartości brutto gdzie walute mnoży się przez liczbę (vat)

jak uniknąć błędów powstałych z tego powodu?

ANDY


Mam pytanie:

dlaczego Access inaczej zaokrągla liczby a inaczej waluty
sprawdzałem to i przy zaokrągleniu do dwóch miejsc po przecinku
liczba 0,005 to 0,00  (0,006 to 0,01) a
waluta 0,005 to 0,01 (0,006 to 0,01)
czy da się ustawić gdzieś parametr zaokrąglania liczb dla formatów

wydaje mi się że może to powodować błędy przy przeliczaniu np.
wartości brutto gdzie walute mnoży się przez liczbę (vat)

jak uniknąć błędów powstałych z tego powodu?

ANDY


opis tego problemu znajdziesz pod tym adresem
http://web.pertus.com.pl/~stanley/faq/P004.htm



(...)


1,31 * 41 = 53,71
Ale (1,35-1,35*0,03)*41 = 53,69

Prawidlowy wynik dla mnie, to 53,71. Jak zmusic akcesa, zeby zaokraglal do
drugiego miejsca po przecinku i wyrazenie drugie obliczalo sie na 53,71?


Do zaokraglania jest funkcja Round.

?Round(1.35-1.35*0.03,2)*41
 53.71

Jesli pominac drobne niuanse dzialania tej funkcji, to wystarczy.
Mowiac o drobnych niuansach ma na mysli np to, ze:
?Round(1.035, 2)
 1,03
a powinno 1,04.

 Bardziej precyzyjne zaokraglanie znajdziesz tutaj:
http://www.access.vis.pl/af0808.htm

K.P.

Pytanie banalne , ale nie mogę sobie z tym poradzić . Mam formularz , w
którym część pól to obiekty niezwiązane . Wartość do nich jest pisywanan
przy pomocy VBA tzn. Recordset coś tam pobiera , oblicza , mnoży , dzieli i
na końcu wpisuje wartość w pole niezwiązane formularza . Problem w tym , że
obliczone w ten sposób wartości mają ileś tam miejsc po przecinku , a ja
chciałabym zaokrąglić to do jednego miejsca po przecinku . Niestety ,
ustawianie właćiwości pola formularza nie działa (zaznaczam 1 ,ale i tak nie
ma efeku) .Próbowałam też skorzystać z NazwaPola.DecimalPlaces=1 w kodzie i
też nic ....
Czy ktos może mi pomóc ?
* * * * * * * * * * * * * *
Marzena
GG 3987951
ICQ 151577589

Ew. zrób zobie nowy moduł o zawartości:

Option Compare Database
Option Explicit

Function Round(liczba As Double) As Double
Dim s As String
s = Format(liczba, "0.0")
Round = CDbl(s)
End Function

i po u?yciu:
Round(75,29) i ustawieniu wyniku z zwoma miejscami
po przecinku otrzymasz w wynkiku swoje 75,30.


-----Oryginalna wiadomooeae-----
Od:        Barney Gumble [SMTP:duff.drin@cornerpub.NOFUDD]
Wys3ano:   2000-03-20 07:58
Do:        pl-comp-bazy-danych-msacc@newsgate.pl
Temat:     Re: Zaokr1glanie

Zobacz na http://www.mvps.org/access pod Modules - "Implementing a custom
Rounding procedure"

    BG :O)

Brygida wrote:

| Czesc!!!
| Mam problem z zaokraglaniem liczb w accessie 97,
| tzn.:

| 75,29 musze zaokraglic do 75,30
| 75,24 do 75,20

| POMOCY :)))) PLOSE

| --
| Szukasz pracy ? Znasz rynek IT (Internet) ? - http://webcorp.pl/praca/

--
"Homer, you shouldn't drink to forget your troubles;
you should only drink to enhance your social skills.
| | BURP!!!<<<"
-----------------------------------------------------
Replace ".NOFUDD" with ".com" to reply.


--
Archiwum listy dyskusyjnej pl-comp-bazy-danych-msaccess
http://www.newsgate.pl/archiwum/pl-comp-bazy-danych-msaccess/

(...)

Prosze wybaczyc to banalne pytanie ale juz nie moge. W zaden sposob nie
udaje mi sie zaokraglic w Accessowym VB liczby do dwoch miejsc po
przecinku.
Jak to nalezy zrobic? Przez format niestety nie dziala?


(...)
Przez format dziala, np.
Format(CDec(Liczba),".00")
ale jesli chodzi o dwa miejsca, to chyba lepiej uzyc
Int(CDec(Liczba*100+0.5))/100
bo format zwraca string. Wprawdzie Access poddaje wynik - w razie potrzeby -
automatycznej konwersji, ale w pewnych przypadkach nalezy mu pomoc puiszac
np. CSng(Format(...))
(c)K.P.

Użytkownik (c) Krzysztof P. <k.pozo@gazeta.plw wiadomości do grup
dyskusyjnych napisał:8c9lfm$bu@h1.uw.edu.pl...


(...)
| Prosze wybaczyc to banalne pytanie ale juz nie moge. W zaden sposob nie
| udaje mi sie zaokraglic w Accessowym VB liczby do dwoch miejsc po
przecinku.
| Jak to nalezy zrobic? Przez format niestety nie dziala?
(...)
Przez format dziala, np.
Format(CDec(Liczba),".00")
ale jesli chodzi o dwa miejsca, to chyba lepiej uzyc
Int(CDec(Liczba*100+0.5))/100
bo format zwraca string. Wprawdzie Access poddaje wynik - w razie
potrzeby -
automatycznej konwersji, ale w pewnych przypadkach nalezy mu pomoc puiszac
np. CSng(Format(...))
(c)K.P.


Dzieki za pomoc :-))

toro

pozdrawiam Wszystkich
jestem pierwszy raz w grupie, więc proszę o wyrozumiałość
chcę zacząć pracować w Accessie
trochę ćwiczę i czytam o tym programie
i od razu napotkałem na problem.
Przyznam się, że najpierw dość dokładnie przeglądałem książkę "Access 97
Biblia"
i nie znalazłem odpowiedzi.
otórz
1. mam pole wyliczane w kwerendzie ( wartość zaokrąglana do 2 miejsc po
przecinku)
2. tworzę raport na podstawie tej kwerendy gdzie chcę podsumować to pole
3.wynik podsumowania w raporcie różni się o jeden grosz

Problem w tym, że Access nawet po zaokrągleniu do 2 miejsc "widzi" cały
ułamek w pamięci i teraz gdy chcę te wszystkie liczby podsumować w raporcie
to program sumuje mi nie liczby z dwoma miejscami po przecinku tylko cały
ułamek i stąd wychodzi suma "niedokładna" na papierze.
w finansach nawet jeden grosz to bardzo dużo
Nie wiem czy dość dobrze to  opisałem ale starałem się jak mogłem.
Proszę o radę i z góry dziękuję