Személyes oldal - kerekítés Access

Beépített

A következő forduló () függvény a forrás szövegben adatmezők vagy egy kiszámított lekérdezés mezőbe.

Tegyük fel, hogy van egy kifejezés a „terepen” Query Designer:
Adó: [költség] * [StavkaNaloga]
Felhajt a legközelebbi fillérre, használata:
Adó: Kerek ([költség] * [StavkaNaloga], 2)

lefelé kerekítés

A kerek minden tört számok le a legközelebbi egész számra, használja az Int ():
Int ([MoePole])

Mindezek a szám le van kerekítve, hogy 2: 2,1, 2,5, 2,8, és 2,99.

Hogy kerek le a legközelebbi érmét (. Pl 10,2199 RUB RUB vált 10,21), szorozzuk 100-zal, lekerekített, majd osszuk el 100:
Int (100 * [MoePole]) / 100

Figyeljük meg, hogy úgy állítjuk elő, a lefelé kerekítés negatív értékek: Int (-2.1) ad -3, mert ez integer alulról. Hogy kerek nulla felé. A Fix () helyett Int ():
Fix (100 * [MoePole]) / 100

kerekítés

Hogy felhajt a legközelebbi magasabb egész számot, használható módon, hogy Int () fordulóban a negatív számok:
- Int (- [MoePole])

Mint a fentiekből kiderül, Int (-2.1) lefelé kerekít a -3. Ezért, egy ilyen expressziós fordulóban 2.1 hogy a 3.

Felhajt a legközelebbi fillérre, szorozzuk -100, kerek, és osszuk el -100:
Int (-100 * [MoePole]) / -100

Kerek a legközelebbi 5 cent

Kerekíteni a legközelebbi 5 cent, szorozza meg 20, kerek, és osszuk el 20:
Kerek (20 * [MoePole] 0) / 20

Hasonlóképpen, felhajt a legközelebbi Bits, szorozza 4. forduló, és osszuk el a 4:
Kerek (4 * [MoePole] 0) / 4

Felhajt 1000 rubel.

Kerek () függvény az Excel veszi negatív szám, mint a helyek száma a tizedes pont, például. Kerek (123456, -3) kerekítve 1000. Sajnos aksessovskaya nem támogatja ezt a funkciót.

Felhajt a legközelebbi 1000 rubel. szakadék 1000, kerek és szorozzuk 1000. példa:
1000 * Round ([költség] / 1000, 0)

Felhajt 1000 rubel. le. ezt osszuk el 1000 kap egy egész szám, és szorozzuk 1000. példa:
1000 * Int ([költség] / 1000)

Felhajt az első 1000 rubel. osztani 1000 és szorozzuk -1 szerezni egy egész értéket. például:
-1000 * Int ([költség] / -1000)

Hogy kerek nulla felé. A Fix () helyett Int ().

Egy másik változat szerint a felhasználói függvény Ken Goetz pontosan úgy viselkedik, mint upomnutaya ekselevskaya funkciót.

Miért kerekíteni?

Van egy ingatlan desyatichnyzh karakterek száma a mezők egy tábla / lekérdezés és szövegdoboz formájában / jelentést. Ez a tulajdonság azonban csak, hogy a mező jelenik meg. ahelyett, hogy hogyan tárolják. A szám úgy néz ki, lekerekített, de azzal a kiegészítéssel, egy számsor (pl. A jelentésben a megjegyzést), az eredmény lehet a „nem harcolni.”

Kerekíti a mező, ha a számítás és a végső összeg konvergál.

Ez vonatkozik a monetáris területeken. Access megjeleníti készpénz mező kerekítve érmét, de megtartja a fontos, hogy egy századával egy fillér (4 tizedesjegy pontossággal).

bankár kerekítés

Kerek () függvény az Access használja a „bankár kerekítés”. Amikor az utolsó számjegy is 5, akkor kerekíti a legközelebbi páros számra. Például, 0,125 kerekítve 0,12 (2 páros), míg a 0,135 kerekítve 0,14 (4, még.)

A lényeg itt - egyenlőség: 1,2,3 és 4 le van kerekítve. 6,7,8 és 9 - ig. 0 nem igényel kerekítést. Például, ha 5 minden alkalommal, hogy felhajt, akkor kap egy „eltolt” eredménye - 4 szám le van kerekítve, és az első 5. Ennek elkerülése érdekében, „Páratlan” (5) le van kerekítve, hogy az előző ábrán, hogy kisimítja a egyenlőtlenség.

A lebegőpontos hiba

Tört értékek számítógép általában kezeli a lebegőpontos számokat. Aksessovskie mező típusa kétszeres pontosságú (Double) vagy egyszeres pontosságú (Single) tartozik ebbe a típusba. Type „dupla pontosságú” ad mintegy 15 számjegy pontosságú, egyedülálló - 8 számjegy (például kézi számológép).

De ezek a számok hozzávetőlegesek. Ugyanígy a harmadik igényel végtelen számú számjegy a tízes számrendszerben, a legtöbb lebegőpontos számok nem ábrázolható pontosan bináris. Wikipedia magyarázza a problémát a pontosság. amellyel szembesülnek a lebegőpontos számok.

Összefoglaló az, hogy a szélsőséges számok nem közelíthetők várható az utat, köszönhetően annak a ténynek, hogy a tényleges értékek és nem egyeznek jelennek meg. Ez akkor válik nyilvánvalóvá, ha ellenőrzi a banki kerekítést.

Az egyik módja annak, hogy az ilyen problémák elkerülésére - használata fixpontos adatok vagy mastshabirovannye chisla.Tip „Money” Access egyfajta fix pont: ő mindig tartja 4 tizedes.

Például, nyissa meg az azonnali ablak (Ctrl + G) ablak és típusa:
. Kerek (CCur (0,545), 2), Round (CDbl (0,545), 2)
A pénz típusa (első) értéke 0,54, míg a dupla pontosságú - 0,55. Pénz fordulók rendesen (még 4. ábra); típusú lebegőpontos (dupla pontosságú) helyesen. Hasonlóképpen, ha megpróbál 8995, pénz rendesen kerekítve (a páros számú 0) míg a típusa kétszeres pontosságú lesz lefelé kerekítve (érvénytelen).

Pénz típusú kezeli csupán 4 tizedes karaktereket. Használja skálázható típusú virtuális (decimális), ha több kell tizedesjegy.

Kerekítés dátumok és időpontok

Felhívjuk figyelmét, hogy a fajta Date / Time Access egy speciális típusú lebegőpontos, ami a tört része a nap. Következésképpen, a mező a típus dátum / idő az idő összetevő is alá van vetve a kerekítési hibák.

Funkció alatti fordulóban a dátum / idő a megadott számú másodperc. Például, hogy kerek a legközelebbi óra (30 * 60 másodperc), használja:
= RoundTime ([MoePoleDataVremya] 1800)

következtetés

A részletesebb technikai magyarázat kerekítés elmélet általában lásd. Cikk Clive Maxfield (Clive Maxfield) Bevezetés az eltérő kerekítési algoritmusokat.

Kapcsolódó cikkek