Fjern tusenskilletegn uten å fjerne desimalene
Mellomrom, punktum og komma kan ha forskjellige roller i tallteksten.
Tusenskilletegn gjør et beløp lettere å lese, men kan forvirre importen. Et tegn må ikke fjernes før dere vet om det grupperer tusener eller skiller desimaler. Samme tegn kan ha forskjellig rolle i forskjellige kilder.
Mellomrom kan også være ulike Unicode-tegn, for eksempel vanlig mellomrom eller hardt mellomrom. En normalisering som bare kjenner tastaturets vanlige mellomrom, kan derfor behandle visuelt like beløp forskjellig.
Bevar desimalene gjennom normalisering
Dette syntetiske eksemplet bruker en kildeavtale der mellomrom grupperer tusener og komma angir desimaler.
| Råtekst | Kontrollert normalisering | Tolket beløp |
|---|---|---|
12 345,67 | Fjern grupperende mellomrom | 12 345,67 |
12345,67 | Ingen grupperende tegn | 12 345,67 |
12.345,67 | Punktum ikke avtalt i denne kilden | Avklar eller avvis |
12 345,67 → alle tegn fjernet | 1234567 | Feil: 1 234 567 |
Den siste transformasjonen mister desimalene og gjør beløpet hundre ganger større. At parseren får et rent tall, er altså ikke et godkjenningskriterium.
Normaliser med en feltregel
Beskriv tillatte tegn og deres rolle for akkurat dette beløpsfeltet. Hvis flere eksportkilder brukes, bør hver kilde ha kjent format. En sammenslått fil med blandet norsk og internasjonal tallvisning bør ikke behandles med én tilfeldig erstatning.
Prøv også negative tall og verdier med mellomrom rundt feltet. Innledende eller avsluttende blanktegn kan være visningsstøy, mens mellomrom inne i en identifikator kan ha en annen betydning. Bruk derfor ikke beløpsregelen på alle tekstkolonner.
- Bevar råteksten ved siden av tolket verdi i prøven.
- Test hardt mellomrom og vanlig mellomrom.
- Kontroller at desimalpresisjonen beholdes.
- Avvis tvetydige formatblandinger.
- Sammenlign både enkelttall og samlet sum.
Når kilden er uavklart
Be om en ny eksport med dokumentert tallformat eller få kildeleverandøren til å bekrefte konvensjonen. Ikke bruk beløpets størrelse som fasit; både 12,345 og 12 345 kan være plausible verdier i forskjellige sammenhenger.
JSON har en definert tallsyntaks uten visningsbaserte tusenskilletegn. Ved omforming fra CSV til JSON skal tallteksten først tolkes korrekt, og deretter serialiseres i det nye formatet. En tekststreng med grupperende tegn blir ikke et gyldig JSON-tall ved å skifte filendelsen.
Les desimaltegn og kildespor.
En nyttig grensetest er beløpet 1 000 uten desimaler og beløpet 1,000 i en annen dokumentert kilde. Den første kan være tusen, den andre én med tre desimaler. Hold kildene atskilt i prøven slik at samme tegnmønster ikke får en global betydning uten grunnlag.