pajautaa

Par skaitļu apaļošanu

« previous entry | next entry »
Apr. 27., 2010 | 09:06 pm
posted by: atheist in pajautaa

Pastāstiet, kā jūs tiekat galā ar skaitļu apaļošanu, piemēram, MS Access. Tur ir viena funkcija Round, bet tā nedara to, ko vajadzētu, jeb

21% no 0.50Ls ir 0.105Ls, kas parādās kā 0.11Ls (jo uzlikts datu tips valūta un viņš parāda 2 ciparus aiz komata kā pienākas), bet līdz ko es gribu no 0.50Ls atņemt tos 0.11, tā tiek atņemti nevis 0.11, bet 0.105 un attiecīgi starpība ir 0.395, kas atkal tiek apaļots uz augšu un rezultātā PVN + summa bez PVN = 0.51Ls. Ko darīt, lai apaļojot 0.105 tiktu tiešām un tikai pie 0.11 un nekā cita un vispār apaļošana notiktu kā pie parastajiem mirstīgajiem?

# | jā, ir doma! | Add to Memories


Comments {12}

from: [info]ad_nocendum
date: Apr. 27., 2010 - 09:17 pm
#

Tāpēc vajadzēja 4x pļūtīt postot?

Tā MS produkti dara - gan apaļo pareizi (kā mirstīgie), gan atņem pareizi (kā mirstīgie).

Tu vienmēr vari savā pvn laukā turēt nevis starpību, bet noapaļoto starpību. Un turpināt aprēķinus ar to. Labāk gan paprasi kādam grāmatvedim, kuru tieši rezultātu vajag glabāt, jo pēc visiem predikātiem viss tiek darīts pareizi.

Atbildēt | Diskusija


Atheiste

from: [info]atheist
date: Apr. 27., 2010 - 09:22 pm
#

Tas nebija speciāli, tāpēc centos ātri izdzēst tos postus. Kaut kādu mistisku simboliem pilnu logu parādija un es tā arī nesapratu, vai esmu iepostojusi vai ne, un pēc tam atklājās, ka tas ir noticis pat 4 reizes.

Nu es tad drīzāk nezinu, kā lai panāku, lai tas noapaļojums glabātos un ar to varētu darboties nevis vienkārši izskatītos, ka ir noapaļots, bet īstenībā nav.

Ja izmantoju "valūtas" nevis citu tipu, tad nav problēmas ar tiem 2 cipariem aiz komata, jo pirms "valūtas" esmu redzējusi vēl lielākus brīnumus aprēķinu rezultātos. 1 santīms nepareizi ir vēl pavisam maz :D

Atbildēt | Iepriekšējais | Diskusija


from: [info]ad_nocendum
date: Apr. 27., 2010 - 09:25 pm
#

Vēl jo vairāk - kāpēc izmantot to valūtas tipu in the first place?

Atbildēt | Iepriekšējais | Diskusija


Atheiste

from: [info]atheist
date: Apr. 27., 2010 - 09:33 pm
#

iesaki kaut ko tādu, kas apaļotos tā kā vajag un ņemšu uzreiz :)

Atbildēt | Iepriekšējais | Diskusija


from: [info]ad_nocendum
date: Apr. 27., 2010 - 10:04 pm
#

FLOAT

Atbildēt | Iepriekšējais


from: [info]ad_nocendum
date: Apr. 27., 2010 - 09:18 pm
#

P.S. Try it on Pentiem I for better results.
P.P.S. Nah Tev tādu datu tipu kā valūta?

Atbildēt


Deele

from: [info]deele
date: Apr. 27., 2010 - 09:26 pm
#

MS Access apaļošana ar "round()" funkciju strādā ļoti specifiski.
Šī funkcija izmanto noapaļošanu-līdz-pārskaitlim loģiku. Ja apaļojamā izteiksme beidzas ar 5, "round()" funkcija noapaļos izteiksmi tā, lai pēdējais cipar ir pārskaitlis. Piemēram:
Round (12.55, 1) noapaļojas par 12.6 (apaļo uz augšu)
Round (12.65, 1) noapaļojas par 12.6 (apaļo uz leju)
Round (12.75, 1) noapaļojas par 12.8 (apaļo uz augšu)

Internetā atradu, ka cilvēki izmanto speciālas pašrakstītas funkcijas, ar kuru palīdzību realizē citādu\pielāgotu apaļošanu.

Atbildēt | Diskusija


Atheiste

from: [info]atheist
date: Apr. 27., 2010 - 09:28 pm
#

jā, par to specifisko apaļošanu arī lasīju, tāpēc nelīmējas pēc tam kopā rezultāts. domāju, ka varēs kāds ieteikt kādu pašrakstītu funkciju, bet laikam nāksies pašai kaut ko domāt :)

Atbildēt | Iepriekšējais


taapati

from: [info]taapati
date: Apr. 27., 2010 - 09:52 pm
#

es nezinu, vai Tev tas svarīgi, bet, ja nejaucu, Tev tā loģika PVN/summu rēķināšanai nav īsti pareiza.

Atbildēt | Diskusija


Atheiste

from: [info]atheist
date: Apr. 27., 2010 - 09:57 pm
#

zinu, ka parasti ir tā, ka pvn pieskaita tai summai, no kuras rēķina, bet nu man ir mazliet speficiskāks gadījums, tāpēc vajag pretēji

Atbildēt | Iepriekšējais | Diskusija


src

from: [info]src
date: Apr. 27., 2010 - 10:40 pm
#

ja gribi iegūt vērtību, kāda ir pirms PVN pievienošanas, dali 0,50Ls ar 1,21.

Atbildēt | Iepriekšējais | Diskusija


taapati

from: [info]taapati
date: Apr. 27., 2010 - 11:15 pm
#

jā, gribēju jau šo rakstīt :)

Atbildēt | Iepriekšējais