27. april 2006 - 12:29Der er
8 kommentarer og 1 løsning
Udskrive en fixed-point værdi
Jeg arbejder i et program med nogle penge, som jeg har valgt at holde i datatypen long i form af øre. På denne måde kan jeg foretage alle mine udregninger (plus og minus) i heltal, hvilket forekommer mig at være den nemmeste og sikreste måde at regne med penge i Java.
Mit problem opstår når jeg ønsker at udskrive en saldo til en String som jeg kan vise til brugeren. Her ønsker jeg naturligvis at indsætte et komma foran de to sidste cifre, og jeg kan ikke helt finde ud af hvordan dette gøres "korrekt". Man kan selvfølgelig dividere med 100, men så får jeg en double retur hvorved jeg (AFAIK) risikerer at miste præcision. Kan jeg ikke blot formatere en long med et fixed point?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
1. Jo det kan jeg selvfølgelig godt - tænkte bare et der måske var en metode toString(int tal, int antalDecimaler) som jeg bare ikke kunne finde. Jeg ender nok med at fixe den selv så.
2. Ja, men mit indtryk var at den var en smule bøvlet. Hvorfor skal det være en reference type? Hvorfor skal den ligge i en eller anden stenet pakke som skal importes i samtlige af mine klasser? Kan man overhovedet foretage "alm. udregninger" med den fx: BigDecimal result = tal1 + tal2 ?
arne (27/04-2006 14:19:03) > Det er nok det nærmeste jeg kommer en løsning. Havde dog håbet at der var en endnu lettere måde :)
Jeg har også kigget på DecimalFormatter som snoop_one nævner, og fandt den interessant metode setMultiplier(int). Denne gør præcis hvad jeg øsnker - bare omvendt! Ved at sætte den til 100 vil formatteren gange alt med 100 før den spytter det ud, men det er bare den forkerte vej i forhold til mit behov.
Hvis ikke der andre der har et bud må du gerne smide et svar, arne.
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.