En av de morsomme delene av flerkulturell programmering er tallformater.
- Amerikanerne bruker 10,000.50
- Tyskerne bruker 10.000,50
- French bruk 10 000,50
Min første tilnærming ville være å ta strengen, analysere den bakover, før jeg møter en separator og bruke dette som min desimaltegn. Det er en åpenbar svakhet med at: 10.000 ville bli tolket som 10.
En annen tilnærming: hvis strengen inneholder 2 forskjellige ikke-numeriske tegn, bruker den siste som desimaltegn, og forkaste de andre. Hvis jeg bare har en, sjekk om det forekommer mer enn én gang og kast den hvis den gjør det. Hvis det vises bare en gang, sjekk om det har 3 siffer etter det. Hvis ja, kast den, ellers bruker det som desimaltegn.
Den åpenbare beste løsningen ville være å oppdage bruker kultur eller Browser, men det fungerer ikke hvis du har en franskmann ved hjelp av en en-US Windows / Browser.
Har .NET Framework inneholder noen mytiske svart magi flyttall parser som er bedre enn Double.(Try)Parse()
å prøve å automatisk oppdage tallformatet?