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

arithmetic exception,numeric overflow,or string truncation

[es] :: Firebird/Interbase :: arithmetic exception,numeric overflow,or string truncation

[ Pregleda: 3860 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kordoba

Član broj: 58723
Poruke: 3
*.ptt.yu.



Profil

icon arithmetic exception,numeric overflow,or string truncation15.08.2006. u 16:40 - pre 215 meseci
Tabela:
CREATE TABLE TR_M_UVOZ_S (
NABAVNA_CENA NUMERIC12_3,
MARZA FLOAT DEFAULT 0.0,
VP_CENA DOUBLE PRECISION DEFAULT 0.0,
PREVOZ1 DEC12_2,
CARINA FLOAT,
VAL_KURS DEC12_2,
PREVOZ2 DEC12_2,
SPEDICIJA DEC12_2,
OSTALI_TROSKOVI DEC12_2,
VREDNOST_FAKTURE DEC12_2,
);
Kod formiranja vp-cene na uvoznoj kalkulaciji javlja mi se greska
arithmetic exception,numeric overflow,or string truncation
formula je
vp_cena=(1+carina/100)*(1+Marza/100)*nabavna_cena*(VAl_kurs+(PREVOZ1+Prevoz2+spedicijA+ostali_trosak)/VREDNOST_FAKTURE) )

Pretpostavljam da je problem sa uvecanjem rezultata usled mnogo decimalnih brojeva.
Savet, iskustva!!!
 
Odgovor na temu

delalt

Član broj: 68360
Poruke: 198
*.teol.net.



Profil

icon Re: arithmetic exception,numeric overflow,or string truncation15.08.2006. u 19:52 - pre 215 meseci
Citat:
kordoba: formula je
vp_cena=(1+carina/100)*(1+Marza/100)*nabavna_cena*(VAl_kurs+(PREVOZ1+Prevoz2+spedicijA+ostali_trosak)/VREDNOST_FAKTURE) )

Ne znam da li je greška u kucanju, ali imaš jednu zagradu viška.
Grešku ćeš najlakše sam naći, formulu totalno skrati po dijelovima,
npr. ostavi samo prvi dio (1+carina/100) pa probaj da li izbaci grešku.
Postepeno dodaj ostale dijelove pa ćeš vidjeti gdje puca.
 
Odgovor na temu

kordoba

Član broj: 58723
Poruke: 3
*.dialup.neobee.net.



Profil

icon Re: arithmetic exception,numeric overflow,or string truncation16.08.2006. u 09:55 - pre 215 meseci
TEST PODACI:
INSERT INTO tR_M_UVOZ_S
(NABAVNA_CENA, MARZA, VP_CENA, CARINA,vrednost_fakture,val_kurs,prevoz1,prevoz2,spedicija,ostali_troskovi)
VALUES (8.3 , 7.9 , 0 , 3 , 92214.86 ,87.1605 ,75843 , 8718 ,7091.20 ,2130);
 
Odgovor na temu

dogriz
Sombor

Član broj: 29744
Poruke: 259
*.so-sombor.com.

Sajt: dogriz.blogspot.com


+6 Profil

icon Re: arithmetic exception,numeric overflow,or string truncation16.08.2006. u 12:06 - pre 215 meseci
Pokusaj kod svih decimalnih brojeva da stavis i decimale, znaci ako je iznos 0 ti stavi 0.0 itd.
 
Odgovor na temu

franjo_tahi
Franjo Tahi
Zagreb

Član broj: 34712
Poruke: 399
194.126.213.*



+1 Profil

icon Re: arithmetic exception,numeric overflow,or string truncation17.08.2006. u 11:03 - pre 215 meseci
Nisi svim field-ovima dao DEFAOUT 0.
Provjeri da nije u nekom NUL.
 
Odgovor na temu

mbabuskov
Milan Babuškov
Subotica

Član broj: 4718
Poruke: 217
82.208.250.*

Sajt: www.comp.rs/izradasajta


+6 Profil

icon Re: arithmetic exception,numeric overflow,or string truncation20.08.2006. u 13:55 - pre 215 meseci
Citat:
kordoba:
vp_cena=(1+carina/100)*(1+Marza/100)*nabavna_cena*(VAl_kurs+(PREVOZ1+Prevoz2+spedicijA+ostali_trosak)/VREDNOST_FAKTURE) )


Mozda ti je VREDNOST_FAKTURE iz nekog razloga nula, a deljenje za nulom nije definisano. Takodje, moze da ti bude problem i ovo 12_2. Nisi napisao definiciju tog domena, ali pretpostavljam da je decimal(12,2). To moze da bude nedovoljno, bolje uvek koristiti maksimalnih 18,2 za cene/iznose. Trece, float ne treba ni slucajno koristiti za finansijske stvari jer ima mali kapacitet i velike greske kod zaokruzivanja. Ako vec ne zelis da fiksiras broj decimala, onda koristi DOUBLE PRECISION.

Ovakvi problemi se najlakse resavaju tako sto iz upita izbacujes jednu po jednu stvar i nadjes u cemu je problem, ali ukupno gledajuci najverovatnije da ti je FLOAT nedovoljno velik.

Osim ovoga, obrati paznju i sto su ti drugi napisali. Recimo, ako je carina 99 din:

(1+99/100) = 1

jer su integeri u pitanju. Ja uvek stavljam *0.01 umesto /100 bas ih tih razloga.

 
Odgovor na temu

kordoba

Član broj: 58723
Poruke: 3
*.ptt.yu.



Profil

icon Re: arithmetic exception,numeric overflow,or string truncation23.08.2006. u 13:11 - pre 214 meseci
Resio sam preblem.
Problem je u sabiranju integera i floata.
Kada sam stavio (1.0+(marza/100) i slicno sve je profunkcionisalo.
Hvala na savetima i predlozima.
 
Odgovor na temu

[es] :: Firebird/Interbase :: arithmetic exception,numeric overflow,or string truncation

[ Pregleda: 3860 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

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