• Miércoles 1 de Mayo de 2024, 04:57

Autor Tema:  No redondear números  (Leído 1962 veces)

player_

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
No redondear números
« en: Lunes 22 de Febrero de 2010, 09:07 »
0
Hay alguna forma de que haciendo cálculos con valores double, el valor se almacene en una variable con los dígitos exactos del cálculo y no con el redondeo automático que hace?

Gracias.

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: No redondear números
« Respuesta #1 en: Lunes 22 de Febrero de 2010, 18:26 »
0
No es posible, cuando utilizas double/single, siempre habra un redondeo, esto es debido a la forma en como se almacenan internamente los valores de tipo double/single.

Editado: borre lo que mencione acerca de decimal, ya que decimal no existe en C++, solo en C#, aun asi, lo anterior que no borre si aplica para C++

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

player_

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: No redondear números
« Respuesta #2 en: Lunes 22 de Febrero de 2010, 23:51 »
0
Ya me imaginaba que no se podría, necesitaba hacer unos cálculos bastante precisos pero más o menos lo tengo solucionado.

Para no abrir otro tema aprovecho este para realizar otra pregunta, hay alguna función en c++ para indicar si un fichero existe? El usuario introduce el nombre del fichero y se comprueba si existe en el mismo directorio. Hasta ahora lo único que he conseguido es abrirlo en modo lectura y si existe, cierro el fichero y lo vuelvo a abrir en modo de escritura, ya que si lo abro directamente en modo escritura, aunque el fichero no exista, me dice que existe (lo crea) y escribe en él. Gracias.

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: No redondear números
« Respuesta #3 en: Martes 23 de Febrero de 2010, 03:02 »
0
Puedes usar la funcion stat() de <sys/stat.h>

Para Windows: ver esto.
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

BerserkO

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: No redondear números
« Respuesta #4 en: Miércoles 24 de Febrero de 2010, 00:29 »
0
claro que puedes, utiliza la libreria <iomanip> y utiliza la funcion setpresicion( x ), el parametro que pasas es el numero de decimales que quieres ver.
por ejemplo.

#include <iomanip>
using::setpresicion;
#include <iostream>
using::cout;

main(){

double x = 7.675
double y = 9.9876543
cout << setpresicion(9) << x/y << endl;

}

asi te dara 9 decimales de presicion, espero te ayude.


}

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: No redondear números
« Respuesta #5 en: Miércoles 24 de Febrero de 2010, 10:34 »
0

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.