Goedemiddag,
Ik probeer functionaliteit te ontwikkelen die de input valideert op geldige Nederlandse getallen.
Zo is 12.34 niet goed, en 12.345,67 weer wel natuurlijk.Dit probeer ik te verwezenlijken door gebruik te maken van de CultureInfo class, zodat dit in het geval van een engelse omgeving ook goed gaat.
Hierto heb ik een test console programma'tje geschreven, echter deze geeft onverwachte resultaten.
De code:
Zoals gezegd staat de culture op Dutch. Echter, alle getallen in de testArray worden goedgekeurd. Kan iemand me vertellen wat ik verkeerd doe?
Ik probeer functionaliteit te ontwikkelen die de input valideert op geldige Nederlandse getallen.
Zo is 12.34 niet goed, en 12.345,67 weer wel natuurlijk.Dit probeer ik te verwezenlijken door gebruik te maken van de CultureInfo class, zodat dit in het geval van een engelse omgeving ook goed gaat.
Hierto heb ik een test console programma'tje geschreven, echter deze geeft onverwachte resultaten.
De code:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| namespace NumberValidation { class Program { public static string[] testArray = new string[] {"1.2.3.4.5", "1.2.3.4.5,67", "123.45", "12.345", "123.45,67", "12.345,67", "123.00", "12.345,00", "123.45,67", "12.345,67" }; static void Main(string[] args) { System.Globalization.CultureInfo cInfo = Thread.CurrentThread.CurrentCulture; System.Globalization.NumberFormatInfo nInfo = cInfo.NumberFormat; decimal value = 0; bool result = true; Console.WriteLine("Specified culture is: " + cInfo.DisplayName); Console.WriteLine(); Console.WriteLine(); foreach (string str in testArray) { try { value = decimal.Parse(str, nInfo); } catch { result = false; } Console.WriteLine(string.Format("Trying to format : {0}", str)); Console.WriteLine(string.Format("Was the conversion succesfull: {0}", result)); Console.WriteLine(string.Format("The formatted result is: {0}", value)); Console.WriteLine(); Console.WriteLine(); } } } } |
Zoals gezegd staat de culture op Dutch. Echter, alle getallen in de testArray worden goedgekeurd. Kan iemand me vertellen wat ik verkeerd doe?