Kako zaokružiti broj na dvije decimale?

Thursday, September 24, 2015


U ovom blog postu rješavamo problem kako zaokružiti broj na dvije decimale u C# programskom jeziku. Kao i u prošlom blog tutorijalu imamo primjer zadatka školskog tipa, također ovo zna biti jako korisno kada nam je potreban precizan ispis brojeva na dva decimalna mjesta iza zareza.

Prošli tutorijal "Kako provjeriti da li je broj, broj 2n" možete pročitati ovdje. Razlika između ovog tutorijala i prošlog je što ovaj tutorijal je namjenjen za C# programski jezik, dok je prošli izvodljiv u većini modernih programskih jezika.

Da bi upješno rješili ovaj zadatak koristi ćemo ovu funkciju IspisDvijeDecimale koja prima jedan parametar tipa double (zbog veće tačnosti) te glavno težište ćemo stavit na ugrađene funkcije ToString i Format. 

Kako tijelo funkcije izgleda možete vidjeti u kodu ispod:

 0| static void IspisDvijeDecimale(double broj) {
 1|
 2|      Console.WriteLine(broj + " -> Neformatiran ispis");
 3|
 4|      Console.WriteLine(broj.ToString("#.##"));
 5|      Console.WriteLine(String.Format("{0:0.00}", broj));
 6|      Console.WriteLine(broj.ToString("n2"));
 7|      Console.WriteLine("{0:c}", broj);
 8|
 9| }

Objašnjenje formatiranja:

  • U prvom slučaju ispisujemo samo broj koji smo dobili i naglašavamo da je to neformatirani ispis (ništa sepcijalno)
  • U drugom ispisu radimo formatiranje sa funkcijom .ToString("#.##") i koristimo hash (#) simbole koji poslije tačke označava da imamo dvije znamenke tj. dva decimalna mjesta. 
  • U trećem uspisu koristimo String.Format funkciju u kojom ćemo formatiranje raditi sa placeholder metodom, poslije nule navodimo da će naš ispis imati dvije decimale iz zareza. Ukratko varijabla broj će zamjeniti mjesto prve nule u placeholder. Ako niste se još upoznali sa ovom metodom ispisa svakako je preporučujem jer olakšava mnoge stvari. U ovom slučaju 0.00 rade isto kao i #.## u prošloj liniji koda.
  • Četvrti ispis je ujedno i "nalakši" i najkraći, korismo format n2 koji ustvari znači n- koristimo number tj. broj, 2- decimalna mjesta iza zareza.
  • I kao peti i poslijednji ispis koristmo opet placeholder {0:c}, C- nam označava currency tj. valutu. Ovdje kao ispis možemo očekivat format brojeva onako kako se postupa sa cijenama, plus jedna od prednosti je to da će na ekranu ispis biti prikazan u defaultnoj valuti kao dodatak na kraju teksta. Ono što razliku poslijednja dva ispisa je da koriste zarez za odvajanje težinskih mjesta tako da npr broj 1987,412 će biti napisan kao 1.987,41
Ali da bi se uvjerili i vidili kako to izgleda u primjeni, ovdje radimo poziv funkcije na slijedeći način i šaljemo joj broj 1187.22368.

 1| IspisDvijeDecimale(1187.22368);

Poslije poziva funkcije i startnja programa kao ispis možemo očekivati slijedeće vrijednosti:

Nadam se kao i uvijek da vam je ovaj tutorijal i blog post bio od pomoći. Konverzija i ispis vrijednosti u obliku sa dva decimalna mjesta je jako bitna pa i kako smo vidjeli u zadnjem primjeru kada ispisujem valute i cijene. Obavezno provjerite i ostale tutorijale na blogu.

Pozdrav! Almir Vuk | AV Development

You Might Also Like

0 comments