Cuando dices hasta 999 millones supongo que sera hasta 999.999.999 de forma rapida lo que se me ocurre es hacer un tratamiento por palabras del texto introducido, cualquier numero puede describirse de la forma: "X millones X mil X" siendo X un numero entre 1 y 999, para el caso de 10.314.015 podrias hacer que recorra el texto hasta encontrar la palabra millones o millon (si la hay), en este caso seria "X millones Y mil Z" donde X=10, Y=314, Z=15, puedes calcular el numero aplicando esta formula: X*1.000.000+Y*1.000+Z
Ahora el problema se reduce a averiguar X, Y, Z, ambas se averiguan de la misma forma. Con una pequeña base de datos guardada en un array puedes averiguar esos numeros, guardando como es en texto cada numero, pero guardar esa equivalencia para 1000 numeros es una locura, pero si guardas del 0 al 99 y 100, 200, 300, ..., 900 podrias construir el numero a partir del texto y en lugar de 1000 equivalencias solo guardarias 109 (que aun puede simplificarse mas, pero eso te lo dejo a ti), asi "trescientos catorce" podrias comprobar que "trescientos"=300 y "catorce"=14 de forma que al sumar los numeros tendrias 314 y con esto ya tendrias el valor de Y para este caso.
Esto es solo una idea general de como puedes hacerlo, seguro que hay metodos mejores, pero esto es lo que se me ha ocurrido al momento. Se que mi explicacion no es muy buena, pero creo que es suficiente para que te hagas una idea de como lo haria yo. Si aun no te quedo muy claro dimelo e intentare darte una explicacion mejor.
|