Extraño redondeo en coma flotante (single)

13/12/2005 - 14:12 por Leonardo | Informe spam
En debug:
? string.Format("{0:g6} ",csng( 2.27477467e-5))
"2.27478e-05 "
? string.Format("{0:g6} ", 2.27477467e-5)
"2.27477e-05 "
? string.Format("{0:g6} ",cdbl( 2.27477467e-5))
"2.27477e-05 "

Estoy verificando la salida de un programa y compruebo un pequeño error de
preción. Los datos son de tipo single.

Profundizando en el error veo que el error no aplica si convierto a double.
 

Leer las respuestas

#1 Harvey Triana
13/12/2005 - 15:48 | Informe spam
Leonardo-

No existe en la informatica -ni antigua ni moderna- un tipo que almacene un
número real. Solo tenemos tipos de datos que se aproximan bastante bien para
resolver problemas de la vida real. Entre más bytes ocupe el tipo, mejor es
la precisión. - Si tienes alma de cientifico, busca en la red literatura
sobre los problemas de punto flotante -

Saludes,
Harvey Triana.

"Leonardo" escribió en el mensaje
news:
En debug:
? string.Format("{0:g6} ",csng( 2.27477467e-5))
"2.27478e-05 "
? string.Format("{0:g6} ", 2.27477467e-5)
"2.27477e-05 "
? string.Format("{0:g6} ",cdbl( 2.27477467e-5))
"2.27477e-05 "

Estoy verificando la salida de un programa y compruebo un pequeño error de
preción. Los datos son de tipo single.

Profundizando en el error veo que el error no aplica si convierto a
double.

Preguntas similares