Tengo un problema específico al convertir los valores double
en una cadena usando sprintf()
en UNIX.formateo sprintf de doble valor
Por ejemplo, tengo dos valores:
double a = 0.009984354523452;
double b = 0.01;
Si bien la conversión, estoy usando:
sprintf(somestringvar, "Double value : %.15f \n", a);
sprintf(diffstringvar, "Double value : %.15f \n", b);
a convertir en una cadena.
Mi problema es para la 'a', el valor se imprime correctamente, pero para el valor de 'b', los 0 se añaden al final. Proporcione cualquier forma común de representar 'a' y 'b' como valores exactos.
Usaría std :: ostringstream para este tipo de cosas. – Robinson
Y, en general, no use 'sprintf()', ya que puede llevar a sobrepasar el búfer. Utilice 'snprintf()' en su lugar, o una de las '' versiones '' seguras '' que Microsoft proporciona en Windows. PD. Bienvenido a Stack Overflow! –
Hola, gracias por las respuestas tempranas. ostringstream no está tomando toda la precisión. un valor se imprime como 0.009976 solamente. Puedo usar snprintf() pero el problema es al imprimir valores correctamente. – sandy