Extraer decimales
Sé que tiene que ser una tontería, pero no soy capaz de dar con la solución. Tengo una matriz con valores decimales (definida como double nValor) y están guardados valores como por ejemplo:
Cita:
|
frac( valor );
Devuelve los decimales. |
Hola.
Dos opciones en el ejemplo: Código PHP:
|
Gracioas por vuestras respuestas. Sabía que era una tontería, pero me he quedado en blanco y no me acordaba de como hacerlo.
|
Imagino que frac() será en delphi y no está en c++
|
Cita:
Cita:
|
¿De qué tipo es nro?
|
Es un double
|
¿Pero ese valor (0,0100999999999942) es lo que devuelve la función, o lo guardas en la BD y de ahí lo lees?
|
Es lo que me devuelve la función una vez hechos los cáculos. Como decía yo tengo guardado el 110,0101, pero al hacer las operaciones me devuelve ese cerro de decimales.
|
Cita:
¿Es un valor que se lee o escribe en la BD? ¿ese campo en la BD de qué tipo es? |
Y si
A ver si así te funciona. PD. No se si trunc estará en C++ |
Hola.
La diferencia infinitesimal (0.1001 y 0,0100999999999942) se produce por que el número no es expresable en una fracción binaria exácta. Pero en la práctica, se reduce a un problema de visualización, podrías hacer: Código PHP:
Código PHP:
|
Cita:
|
Cita:
Cita:
|
Hola.
Es que es solo visualización, internamente los cálculos se realizarán como corresponde. Por ejemplo, este tratamiento del resultado muestra la visualización correcta: Código PHP:
Si necesitas una mayor precisión podes usar el tipo long double o recurrir a una biblioteca de terceros especializada. Saludos :) |
La franja horaria es GMT +2. Ahora son las 16:45:11. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi