[ Black One @ 15.09.2009. 10:07 ] @
Pozz.

Imam problem pri zbrajanju cijene u pos programu što radim znači imam kasu i sada dodam 2 artikla
jednom je cijena npr 148,72 a drugom 140,21 i sada kada vadim ukupnu cijenu koristim

Code:
 SELECT SUM(cijena_u) As Cijena_u FROM racun_artikli WHERE.......

 If DBReader.HasRows = True Then
                While DBReader.Read

                    If Not DBReader.IsDBNull(0) Then
                        cijena1 = CType(DBReader("cijena_u"), Decimal)
                    Else
                        cijena1 = CDec("0,00")
                    End If
                End While

            End If




i koristim ovaj kod da mi pretvori cijenu na 2 decimale

Code:


nova_cijena = FormatNumber(cijena1, 2, , , TriState.False)



i on mi zbroji sve al mi uvijek laže za zadnji broj npr za zbroj cijene artikla 148,72 i 140,21 njemu je 198,92 a trebalo bi biti 198,93
kada maknem kod za pretvaranje za 2 decimale onda mi ispiše 288,9227

polje cijena_u u bazi mi je na currency koristim access bazu dali netko zna kako da popravim taj problem?


[ markopadjen @ 15.09.2009. 10:54 ] @
Verovatno si deklarisao polje u bazi kao DOUBLE a ne DECIMAL, tako da su ti brojevi eksponenti broja 2 a ne 10.
AKo nećeš da menjaš polja, koristi Math.Round funkciju umesto FormatNumber.
[ Black One @ 15.09.2009. 11:49 ] @
polje u bazi mi je samo currency... probo sam stavit i decimal al neradi mi baš ni to nešt čudno izbaci =(
[ markopadjen @ 15.09.2009. 12:15 ] @
Prvo da kažem da ja nikad nisam koristio CURRENCY polje. Ali bih probao sledeće stvari:

Umesto:
Code:
           cijena1 = CType(DBReader("cijena_u"), Decimal)

Stavi:
Code:
           cijenaSTR =DBReader("cijena_u")

Gde ti je cijenaSTR neki string. Tako ćeš tačno da vidiš šta dobijaš iz baze pre svih kastovanja. Ako to nije željeni rezultat, onda je problem u bazi.

Pod tim "čudno izbaci" na šta konkretno misliš?
[ Black One @ 15.09.2009. 13:34 ] @
pod čudnim mislim da mi nebroji ništa iza dec točke stavi samo 2 nule,

evo slika probo sam zamijenit onaj kod s tvojim i opet mi je ispalo isto



[ markopadjen @ 15.09.2009. 14:38 ] @
Na osnovu tvog primera, on ti računa tačno:

Šifra 100:
120.50 * 1.23 + 0.5 = 148.715

Šifra 101:
113.99 * 1.23 = 140.2077

148.715 + 140.2077 = 288.9227

Zbir ne bi u ovo slučaju trebao da računaš preko unosa iz baze, već na osnovu unosa iz DataGrid -a, pošto ti se javlja samo greška u zaokruživanju, ništa više.
[ Black One @ 15.09.2009. 15:48 ] @
hvala puno si mi pomogao!

problem je bio u tome što je on meni u bazi prikazivao non stop da je cijena u npr 122,21 lipu a bila je u formatu 122,2131 i zato nije nikad dobro računo sad sam namjestio da direktno sprema u bazu s dvije decimale
i radi super
Hvala na pomoći ;)
[ markopadjen @ 15.09.2009. 16:30 ] @
Nema na čemu!