Necesitaría saber si hay alguna forma de mejor (o especificar) la precisión de la función atof
. Por supuesto mi objetivo es pasar un string
a float
. Actualmente lo estoy haciendo de esta manera:
char buffer[]={"3435.68209"};
float resultado;
resultado = atof(buffer);
Pero el valor final luego de la conversión me da: 3435.68213
Entiendo perfectamente el por que de ese "error" y el funcionamiento de los float
, pero el sistema que estoy realizando tiene que ser muy preciso y esa diferencia no es aceptable.
¿Hay alguna manera de especificar o mejorar la precisión de atof
?
¿Hay alguna otra función para reemplazarlo?
¿Conocen algun otro metodo para pasar de string
a float
con un 100% de precisión que no sea utilizando una función?
Edito para agregar mas info:
En mi aplicación el valor original en el string siempre va a tener como maximo 5 digitos antes del punto decimal y 6 digitos luego del punto decimal.
Es decir: XXXXX.YYYYYY (puede tener menos en ambos casos, pero jamás mas)