este programita sencillito, por ejemplo en si yo le ingresara una sifra mayor a 7 digitos(ej: 1234567) el programa da como salida 1.23457e+06 y si lo cambio a tipo double sucede lo mismo. ¿ que puedo hacer en esos casos ?
La salida es la clásica notación científica para un double de ese tamaño, sólo hasta seis cifras un float o double salen como entero y para mayores cifras usa la mencionada notación científica. Si lo cambias como INT te saldrá 1234567.
Saluditos! ..... !!!!
« Última modificación: 20 Diciembre 2013, 01:38 am por leosansan »
osea que no se pueden ingresar cifras muy altas ? porque si por ejemplo, lo cambiara a tipo int o long y le ingreso un numero de 10 cifras sale un resultado loco
osea que no se pueden ingresar cifras muy altas ? porque si por ejemplo, lo cambiara a tipo int o long y le ingreso un numero de 10 cifras sale un resultado loco
Sí se pueden ingresar cifras muy altas, pero en formato float o double con la consiguiente notación exponencial. Otra cosa es la limitación de los enteros.
En mi máquina el entero máximo es 2147483647. Lo puedes consultar en la librería climits.
De todas formas en C se puede controlar el número de cifras significativas y decimales, pero no sé como sería en C++.
este programita sencillito, por ejemplo en si yo le ingresara una sifra mayor a 7 digitos(ej: 1234567) el programa da como salida 1.23457e+06 y si lo cambio a tipo double sucede lo mismo. ¿ que puedo hacer en esos casos ?
No veo el problema ya que el numero almacenado es el correcto. Tema aparte es el formato de impresión, en C++ utilizas los manipuladores fixed y scientific para ese propósito.
Un saludo
En línea
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language