FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
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:
|
#2
|
||||
|
||||
frac( valor );
Devuelve los decimales.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
||||
|
||||
Hola.
Dos opciones en el ejemplo: Código PHP:
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#4
|
||||
|
||||
Gracioas por vuestras respuestas. Sabía que era una tontería, pero me he quedado en blanco y no me acordaba de como hacerlo.
|
#5
|
||||
|
||||
Imagino que frac() será en delphi y no está en c++
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#6
|
||||
|
||||
Así debe ser. Pero ahora estoy teniendo un problema.
Las dos opciones funcionan a la perfección, pero me están saliendo resultados inesperados. El primer valor que tengo que evaluar es 110,0101 y de cualqiuera de las formas que me propone ecfisa lo hace CASI bien. Y digo casi porque el valor que deja después de la operación en vez de ser 0,0101 es 0,0100999999999942. En fin, a ver como lo arreglamos. |
#7
|
||||
|
||||
¿De qué tipo es nro?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#8
|
||||
|
||||
Es un double
|
#9
|
||||
|
||||
¿Pero ese valor (0,0100999999999942) es lo que devuelve la función, o lo guardas en la BD y de ahí lo lees?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#10
|
||||
|
||||
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.
|
#11
|
||||
|
||||
Cita:
¿Es un valor que se lee o escribe en la BD? ¿ese campo en la BD de qué tipo es?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#12
|
||||
|
||||
Y si
A ver si así te funciona. PD. No se si trunc estará en C++
__________________
Confórmate con lo que tienes pero anhela lo que te falta. |
#13
|
||||
|
||||
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:
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#14
|
||||
|
||||
A ver. Ese 100,0101 es un valor guardado en un vector declarado como double (double *nValor), como decía en el primer mensaje, y lo calculo yo; por lo tanto está calculado "tal cual" lo ves, con esas cuatro posiciones decimales. El decimal realmente es la posición que ocupa (fila y columna) en el vector; es muy largo de explicar por qué hago esa filigrana, pero me hace falta así.
Última edición por Angel.Matilla fecha: 05-07-2018 a las 20:24:24. |
#15
|
||||
|
||||
Cita:
No es tan sencillo ya que ese 0101 (ó 0302 ó 1009, etc.) son realmente unas coordenadas. Ahora bien, si me garantiza que con esa conversión saco el valor original... |
#16
|
||||
|
||||
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
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 06-07-2018 a las 00:55:02. Razón: Agregar imágen |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Extraer datos de cds | pvillano | Conexión con bases de datos | 5 | 20-10-2011 16:59:33 |
Extraer Decimales De Un Numero | luis vazquez | Varios | 8 | 15-04-2009 20:51:56 |
extraer un dato | megaredoxk | Impresión | 6 | 17-01-2008 21:35:47 |
Extraer un registro | Walterdf | Conexión con bases de datos | 3 | 28-09-2004 17:40:21 |
|