Avatar billede krestenbanke Nybegynder
24. november 2004 - 16:53 Der er 7 kommentarer og
1 løsning

Integer sammensat af andre integers

Hejsa!

Har et problem med det format mit heltal skal have.
Det er et faktura nr. der helst skulle startet med "år" og der efter et tre-cifret forløbende nr. Eksempelvis:

04013

Hvor altså 04 er året og det fortløbende nr. er 013.

Problemet er, at når jeg prøver at "sætte" de to tal sammen går der rod i den.

Har prøvet at lave det om til String, for dels at kunne se antalet af cifre (Lenght() ), og dels for at kunne sætte året og nummeret sammen. Men det går galt når man parser det til Integer, da den æder det første "0" og ligeledes æder "0"-et i 013, således at der blot står:
413

Hvordan holder jeg styr på det???

Håber der er en, som kan hjælpe!!
Avatar billede arne_v Ekspert
24. november 2004 - 16:56 #1
Har du prøvet DecimalFormat ?
Avatar billede arne_v Ekspert
24. november 2004 - 16:59 #2
Eksempel:

import java.text.*;

public class Faktura {
    private static final NumberFormat f1 = new DecimalFormat("00");
    private static final NumberFormat f2 = new DecimalFormat("000");
    public static String format(int y, int n) {
        return f1.format(y) + f2.format(n);
    }
    public static void main(String[] args) {
        System.out.println(format(4,13));
    }
}
Avatar billede arne_v Ekspert
24. november 2004 - 17:00 #3
Output:

04013
Avatar billede krestenbanke Nybegynder
24. november 2004 - 17:10 #4
Jeg bøjer mig endnu engang i støvet for mesteren!

Tak for hjælpen!!!

Du kaster bare et svar...
Avatar billede arne_v Ekspert
24. november 2004 - 18:24 #5
svar
Avatar billede krestenbanke Nybegynder
26. november 2004 - 17:34 #6
Var hvis lidt hurtig...

Problemet er jo, at jeg skal bruge en Integer. Sådan som den her "Format'er" virker bliver der jo returneret en String. Hvis jeg Parser den får jeg jo igen samme problem med at der bliver ædt et "0", så det bliver 4013

??
Avatar billede arne_v Ekspert
26. november 2004 - 18:11 #7
int v = y * 1000 + n;

giver dig et enkelt tal.

Foranstillede nuller er kun noget som giver mening når et tal er i String form.

Normalt vil man operere på en int hele tiden internt indtil til sidst, hvor
man konverterer til tekst og udskriver.
Avatar billede krestenbanke Nybegynder
27. november 2004 - 00:18 #8
Ja, det gør jeg også bare. Tænkte på at det kunne have betydning for andre processer, men det vil det ikke komme til, da det kun "ud-af-til" vil blive vist med det ekstra "0"...

Takker igen ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester