Como posso fazer um parser que seja inteligente para definir um locale conforme o valor passado
Quanto é "10,958"?
- É o valor dez mil, novecentos e cinqüenta e oito
- É o valor dez unidades e novecentos e cinqüenta e oito milésimos
Quanto é "10.958"?
- É o valor dez mil, novecentos e cinqüenta e oito
- É o valor dez unidades e novecentos e cinqüenta e oito milésimos
Ou seja: não dá para ser inteligente. Você pode acertar alguns casos, mas não consegue pegar tudo, a menos que você limite um pouco as entradas. Se você chumbar 2 casas decimais, por exemplo, até dá para ser um pouco mais inteligente.
Quanto é "10,95"?
- É o valor dez unidades e noventa e cinco centésimos.
Quanto é "10.95"?
- É o valor dez unidades e noventa e cinco centésimos.
Da mesma maneira: "2/3/2008" é três de fevereiro de 2008 ou dois de março de 2008?
Eu sei que "2008.03.02" é sempre 2 de março de 2008, tanto é que muitos dialetos SQL preferem esse tipo de entrada porque com eles isso sempre funciona OK.