Si el Dato es muy grande Declara un double.
Algunos compiladores tienen problemas cuando se le asigna un número entero a una variable double. de tal forma que es recomendable que lo escribas con dos ceros como decimales.
Ejemplo:
double Dato = ZERO;
Dato = 123456789012.00;
La otra forma es que moldees el dato:
Por ejemplo si lo estas recibiendo en modo texto:
char Buffer[16] = "123456789012";
double Dato = (double)atoi(Buffer);
Si tienes problemas con esta instruccion
Prueba con esta:
char Buffer[16] ="123456789012";
double Dato = ZERO;
strcat(Buffer,".00");
Dato = atof(buffer);
Espero que la información te sea de utilidad.
Saludos Bench:
http://www.BenchSQL.com/