Gyakorlati alapok I.

A DecimalFormat osztály

www.informatika-programozas.hu - Ez a programozási feladat nehéz lesz!

 

Ez a fejezet egyértelműen haladó szintű fogalmakkal dolgozik, a kezdő Java-tanuló nyugodtan átugorhatja. Az ok, amiért ide szerkesztettem, hogy az előző 2 fejezet...

...alapszinten, de kiválóan összefoglalta a konzolkiírási lehetőségeket, amelyek közül az utóbbi fejezet -emlékezzünk vissza-, kifejezetten számformázással foglalkozott. Ezen fejezet ennek szinte egyenes folytatása, de magasabb szintű fogalmakkal.

 

Nos, a Java-rendszeren belül létezik egy olyan osztály, amelyik segítségével még szofisztikáltabb módon állíthatunk be kimeneti számformátumokat. Az osztály neve: DecimalFormat, lokációja: java.text.DecimalFormat.

 

Az osztály rendkívül sokféle belső metódussal rendelkezik, ezek közül nézzük meg azt a rutint, amelyik újdonság A System.out.printf() és a System.out.format() című fejezetben foglaltakhoz képest.

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

Ez pedig egy számformázó minta előzetes megadása, amely alapján a függvény a kimeneti számformátumot beállítja.

 

Létrehozunk egy tetszőleges double típusú  számot, a számforma mintáját (#) betesszük egy String objektumba, majd az említett osztályból létrehozunk egy számformázó objektumot is:

 

DecimalFormat szamFormazo = new DecimalFormat(minta);

 

Kis további trükközéssel a számformázó objektum sikeresen "összegyúrja" a bemeneti adatokat megfelelő kimeneti számformátumba. Ezek alapján nézzük meg a futtatható Java-kódokat!

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

import java.text.*;

public class Main {
public static void main(String[] args) {
    double szam = 123456.789;
    String minta = "###,###.###";
    DecimalFormat szamFormazo = new DecimalFormat(minta);
    String szamFormazott = szamFormazo.format(szam);
    System.out.println("Eredeti szam: " + szam + "\n"

                                + "Minta: " + minta + "\n"

                                + "Formazott szam: " + szamFormazott);
    }
}

 

Végeredmény:

Eredeti szam: 123456.789
Minta: ###,###.###
Formazott szam: 123 456,789

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

import java.text.*;

public class Main {
public static void main(String[] args) {
    double szam = 123456.789;
    String minta = "###.##";
    DecimalFormat szamFormazo = new DecimalFormat(minta);
    String szamFormazott = szamFormazo.format(szam);
    System.out.println("Eredeti szam: " + szam + "\n"

                                + "Minta: " + minta + "\n"

                                + "Formazott szam: " + szamFormazott);
    }
}

 

Végeredmény:

Eredeti szam: 123456.789
Minta: ###.##
Formazott szam: 123456,79

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

import java.text.*;

public class Main {
public static void main(String[] args) {
    double szam = 123456.789;
    String minta = "$###,###.###";
    DecimalFormat szamFormazo = new DecimalFormat(minta);
    String szamFormazott = szamFormazo.format(szam);
    System.out.println("Eredeti szam: " + szam + "\n"

                                + "Minta: " + minta + "\n"

                                + "Formazott szam: " + szamFormazott);
    }
}

 

Végeredmény:

Eredeti szam: 123456.789
Minta: $###,###.###
Formazott szam: $123 456,789

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

import java.text.*;

public class Main {
public static void main(String[] args) {
    double szam = 123.45;
    String minta = "00000.000";
    DecimalFormat szamFormazo = new DecimalFormat(minta);
    String szamFormazott = szamFormazo.format(szam);
    System.out.println("Eredeti szam: " + szam + "\n"

                                + "Minta: " + minta + "\n"

                                + "Formazott szam: " + szamFormazott);
    }
}

 

Végeredmény:

Eredeti szam: 123.45
Minta: 00000.000
Formazott szam: 00123,450