Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 4 odgovora
  • 3.804 pregleda

Najnovija ↓

Cijelobrojna vrijednost ! 21.08.2008. u 15:04 · pre 221 mesec #1
Imam problema prilikom printanja racuna,npr
kad otkucam artikle na ekranu mi prikaze :

Primjer na ekranu pise:
Cola cijena 2,30 kolicina 1 iznos 2,30

ali kad printa racun :
Cola cijena 2 kolicina 1 iznos 2,30

Prava cijena je 2,50 i ona se nalazi u bazi,primjetio sam da mi odredjene cijene koje nisu cijeli brojevi (2,4 zaokruzi na 2 ; 2,8 zaokruzi na 3) zaokruzuje kao cijelobrojnu vrijednost.
Iznos je ispravan uvijek bez obzira kakva je cijena ali bi volio da na racunu imam cijenu koja je odredjena.
Kako cu to uraditi da li neko ima primjer koda ili da napise liniju koda kako mi se nebi cijena zaokuruzivala,vec da daje decimalni iznos.
Re: Cijelobrojna vrijednost ! 21.08.2008. u 17:10 · pre 221 mesec #2
Moras malo bolje da formulises pitanje.Niko od nas ne zna u kom programskom jeziku radis,niti kako stampas racun.Budi malo precizniji.Daj deo koda koji ti pravi problem.
Re: Cijelobrojna vrijednost ! 25.08.2008. u 14:05 · pre 221 mesec #3
sve te "monetarne" vrednosti vodi kao System.Decimal.

prilikom ispisa, ToString() ima razna formatiranja, pa vidi neko koje ti odgovara...
Re: Cijelobrojna vrijednost ! 25.08.2008. u 14:16 · pre 221 mesec #4
Pretpostavljam da je u pitanju C#.

Neka je

Code:

double cena = 12.3456;


1. ako stavis

Code:

string natpis = string.Format("{0:0.00}", cena);


natpis ce biti "12.35"

2. ako stavis

Code:

string natpis = string.Format("{0:0.0000000}", cena);


natpis ce biti "12.3500000"

3. ako stavis

Code:

string natpis = string.Format("{0:000.000}, {1:0.0}, {2:0.000}", cena, cena, cena);


natpis ce biti "012.346, 12.3, 12.346"

i slicno...
Re: Cijelobrojna vrijednost ! 25.08.2008. u 14:51 · pre 221 mesec #5
Posto je pomenuta i ToString() metoda

Code:

string natpis = string.Format("{0:0.00}", cena);


je isto sto i

Code:

string natpis = cena.ToString("#.##");



Ako treba na vise mesta da ovo radis, mozes da napravis funkciju i da lako menjas format po potrebi. Na primer:

Code:

private const string formatCene = "{0:0.00}";

private string FormatiranaCena(double cena)
{
    return string.Format(formatCene, cena);
}



A ako ti ovo treba samo za neki DataGridView, iz design view-a mozes da ides na "Edit Columns..." pa na "DefaultCellStyle" za konkretnu kolonu, pa u polju Format da podesis format stringa za kolonu. Tu ima i "preview" i postavljas tacno broj decimalnih mesta.

Ovo naravno moze i kroz kod sa

Code:

this.dataGridView.DefaultCellStyle.Columns[index].Format = "N2"; // za broj sa 2 decimalna mesta


Uz ovakve kolone lepo ide desno poravnanje.


Ovo ti verovatno ne treba, ali ako imas potrebe da ti format ispisa zavisi od regionalnih podesavanja, primeri su:

Code:

// natpis = "12.345" invarijantna kultura
string natpis = cena.ToString(CultureInfo.InvariantCulture);

// natpis = "12,345" nemacki
string natpisDe cena.ToString(CultureInfo.CreateSpecificCulture("de-DE"));
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme